<!DOCTYPE html PUBLIC "-//W3C//XHTML 1.0 Transitional" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
	<head>
		<title>POL Class Reference</title>
		<meta name="keyword" content="POL, EScript, documentation, Ultima Online, UO, packets, client, ultima online client, emulator" />
		<meta name="description" content="Penultima Online Documentation website." />
		<meta name="Author" content="Racalac, Rykard" />
		<meta name="Generator" content="POL Doc-o-matic" />
		<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
		<meta http-equiv="Content-Style-Type" content="text/css" />
		<link href="style.css" rel="stylesheet" type="text/css"  media="all"  />
	</head>
	<script language="JavaScript1.2" type="text/javascript">
function ExpandContract(s) {
  var bulletE = document.getElementById("bullet_"+s);
  var spanE = document.getElementById("span_"+s);
  var Expanded = bulletE.innerHTML;

  if(Expanded == '[+]') {
    spanE.style.display = 'block';
    bulletE.innerHTML = '[-]';
  }
  else { 
    spanE.style.display = 'none'; 
    bulletE.innerHTML = '[+]';
  }
}
</script>

<body>
<div class="container"><div id="doc-mini-header">
<div class="doc-home"><a href="index.html">
            Home
				  </a></div>
<b><a name="TOP"></a>
					Last Modified:
					03/13/2009</b>
</div></div><div id="main"><div class="container"><div class="doc-mainbox"><table class="doc-table" width="540px">
<tr align="center"><td><strong>Class Hierarchy</strong></td></tr>
<tr align="left" padding="50px"><td><pre xml:space="preserve">

            <a href="#UObject">UObject</a>             <a href="#Account">Account</a>         <a href="#Polcore">PolCore()</a>    <a href="#DataFileElement">DataFileElement</a>
               |
               |                <a href="#Guild">Guild</a>           <a href="#Script">Script</a>       <a href="#Datastore">Datastore</a>
     +---------+--------+
     |                  |       <a href="#Array">Array</a>           <a href="#Dictionary">Dictionary</a>   <a href="#Datafile">Datafile</a>
   <a href="#Character">Character</a>           <a href="#Item">Item</a>
     |                  |       <a href="#AuxConnection">AuxConnection</a>   <a href="#Error">Error</a>        <a href="#String">String</a>
    <a href="#NPC">NPC</a>                 |
                        |                                    <a href="#Struct">Struct</a>
     +------------------+--------------+-----------+
     |                  |              |           |         <a href="#Package">Package</a>
 <a href="#Equipment">Equipment</a>           <a href="#Lockable">Lockable</a>         <a href="#Map">Map</a>        <a href="#Multi">Multi</a>
     |                  |                          |         <a href="#Packet">Packet</a>
 +---+----+        +----+--------+            +----+----+
 |        |        |             |            |         |    <a href="#Party">Party</a>
<a href="#Armor">Armor</a>  <a href="#Weapon">Weapon</a>     <a href="#Door">Door</a>        <a href="#Container">Container</a>      <a href="#Boat">Boat</a>     <a href="#House">House</a>
                                 |
                            +----+----+
                            |         |
                         Spellbook   <a href="#Corpse">Corpse</a>
</pre></td></tr>
</table></div></div></div><div class="main">
<div class="container"><div class="doc-mainbox-big-gold">
<div class="doc-anchor"><a href="#TOP">[^]</a></div>
<table class="doc-table" frame="void" rules="groups" width="100%" border="1" CELLPADDING="1" CELLSPACING="0">
<colgroup align="left">
<col width="25%">
<col width="18%">
<col width="52%">
<col width="5%">
</colgroup>
<tbody><tr><th align="center" colspan="4"><a name="Account">Account</a></th></tr></tbody>
<tbody><tr id="doc-table-dark"><th align="left" colspan="4">Explanation</th></tr></tbody>
<tbody><tr><td colspan="4">Object describing a player's game account</td></tr></tbody>
<tbody><tr id="doc-table-dark"><th align="left" colspan="4">Members</th></tr></tbody>
<tbody><tr id="doc-table-med">
<td>Name</td>
<td>Type</td>
<td>Desc</td>
<td>Access</td>
</tr></tbody>
<tbody>
<tr>
<td>banned</td>
<td>Boolean</td>
<td>true if banned</td>
<td>r/o</td>
</tr>
<tr id="doc-table-light">
<td>defaultcmdlevel</td>
<td>Integer</td>
<td>the number for the accounts default command level</td>
<td>r/o</td>
</tr>
<tr>
<td>enabled</td>
<td>Boolean</td>
<td>true if enabled</td>
<td>r/o</td>
</tr>
<tr id="doc-table-light">
<td>name</td>
<td>String</td>
<td>the name of the account</td>
<td>r/o</td>
</tr>
<tr>
<td>passwordhash</td>
<td>String</td>
<td>MD5 password hash string</td>
<td>r/o</td>
</tr>
<tr id="doc-table-light">
<td>uo_expansion</td>
<td>String</td>
<td>used uo-expansion</td>
<td>r/o</td>
</tr>
<tr>
<td>usernamepasswordhash</td>
<td>String</td>
<td>MD5 username+password hash string</td>
<td>r/o</td>
</tr>
</tbody>
<tbody><tr id="doc-table-dark"><th align="left" colspan="4">Methods</th></tr></tbody>
<tbody><tr id="doc-table-med">
<td>Prototype</td>
<td>Returns</td>
<td colspan="2">Desc</td>
</tr></tbody>
<tbody>
<tr>
<td>addcharacter(index)</td>
<td>nothing/error</td>
<td colspan="2">If Index is 0 (.AddCharacter(0)), it will find the next available slot on the account. (Otherwise pass 1-5) Will create a naked, uncolored, male character named 'new character' at 1, 1, 1 on Britannia. No scripts are ran for this method of character creation. Edit this new character via the script creating it.</td>
</tr>
<tr id="doc-table-light">
<td>ban()</td>
<td>true</td>
<td colspan="2">bans the account</td>
</tr>
<tr>
<td>checkpassword(string pass)</td>
<td>boolean/error</td>
<td colspan="2">returns true if 'pass' is the account's password</td>
</tr>
<tr id="doc-table-light">
<td>delete()</td>
<td>true/error</td>
<td colspan="2">Delete this empty account.</td>
</tr>
<tr>
<td>deletecharacter(integer slot) </td>
<td>true/error</td>
<td colspan="2">Deletes character in slot 'slot'. returns error if not character in that slot (1..5)</td>
</tr>
<tr id="doc-table-light">
<td>disable()</td>
<td>true</td>
<td colspan="2">disables the account</td>
</tr>
<tr>
<td>enable()</td>
<td>true</td>
<td colspan="2">enables the account</td>
</tr>
<tr id="doc-table-light">
<td>eraseprop(string propname)</td>
<td>true</td>
<td colspan="2">EraseObjProperty for account objects.</td>
</tr>
<tr>
<td>getcharacter(integer slot)</td>
<td>true/OfflineCharacterRef</td>
<td colspan="2">gets an OfflineCharacterRef for the character in slot 'slot'. returns error if not character in that slot (1..5)</td>
</tr>
<tr id="doc-table-light">
<td>getprop(string propname)</td>
<td>true/error</td>
<td colspan="2">GetObjProperty for account objects.</td>
</tr>
<tr>
<td>move_char(string destacctname, integer slot)</td>
<td>true/error</td>
<td colspan="2">Move character from this account to destination account. You can use it to flip chars on same account too.</td>
</tr>
<tr id="doc-table-light">
<td>propnames()</td>
<td>Array</td>
<td colspan="2">returns an array of cprop names on this account</td>
</tr>
<tr>
<td>set_uo_expansion(string expansion)</td>
<td>true/error</td>
<td colspan="2">This determines what flag is sent with packet 0xB9 during login (Nothing -&gt; 0x0000 / T2A -&gt; 0x0001 / LBR -&gt; 0x0002 / AOS -&gt; 0x801b / SE -&gt; 0x805b / ML -&gt; 0x80db / KR -&gt; 0x86DB). It's possible to hook 0xB9 but don't forget to set_uo_expansion anyway because core uses this for internal flags (e.g. AoS Tooltips). The servspecopt.cfg UOFeatureEnable is used with packet 0xA9 and is currently global to all clients. Recognized values: KR, ML, SE, AOS, LBR, T2A (default).</td>
</tr>
<tr id="doc-table-light">
<td>setdefaultcmdlevel(integer number)</td>
<td>true/error</td>
<td colspan="2">Set the account's default command level.</td>
</tr>
<tr>
<td>setname(string newname, string newpass)</td>
<td>true/error</td>
<td colspan="2">sets the account name to newname, newpass optional</td>
</tr>
<tr id="doc-table-light">
<td>setpassword(string newpass)</td>
<td>true/error</td>
<td colspan="2">sets the account password to newpass</td>
</tr>
<tr>
<td>setprop(string propname, propval)</td>
<td>true</td>
<td colspan="2">SetObjProperty for account objects.</td>
</tr>
<tr id="doc-table-light">
<td>split(string newacctname, integer slot)</td>
<td>true/error</td>
<td colspan="2">Create a new account and move character to it.</td>
</tr>
<tr>
<td>unban()</td>
<td>true</td>
<td colspan="2">unbans the account</td>
</tr>
</tbody>
</table>
</div></div>
<div class="container"><div class="doc-mainbox-big-gold">
<div class="doc-anchor"><a href="#TOP">[^]</a></div>
<table class="doc-table" frame="void" rules="groups" width="100%" border="1" CELLPADDING="1" CELLSPACING="0">
<colgroup align="left">
<col width="25%">
<col width="18%">
<col width="52%">
<col width="5%">
</colgroup>
<tbody><tr><th align="center" colspan="4"><a name="Armor">Armor</a></th></tr></tbody>
<tbody><tr id="doc-table-dark"><th align="left" colspan="4">Parent</th></tr></tbody>
<tbody><tr><td colspan="4"><a href="#Equipment">Equipment</a></td></tr></tbody>
<tbody><tr id="doc-table-dark"><th align="left" colspan="4">Explanation</th></tr></tbody>
<tbody><tr><td colspan="4">Equipable items that protect against damage in combat</td></tr></tbody>
<tbody><tr id="doc-table-dark"><th align="left" colspan="4">Members</th></tr></tbody>
<tbody><tr id="doc-table-med">
<td>Name</td>
<td>Type</td>
<td>Desc</td>
<td>Access</td>
</tr></tbody>
<tbody>
<tr>
<td>ar</td>
<td>Integer</td>
<td>Modified armor factor</td>
<td>r/o</td>
</tr>
<tr id="doc-table-light">
<td>ar_base</td>
<td>Integer</td>
<td>Base armor factor (as in itemdesc.cfg)</td>
<td>r/o</td>
</tr>
<tr>
<td>ar_mod</td>
<td>Integer</td>
<td>Armor factor modifier</td>
<td>r/w</td>
</tr>
<tr id="doc-table-light">
<td>onhitscript</td>
<td>String</td>
<td>Script name that runs when armor is hit</td>
<td>r/w</td>
</tr>
</tbody>
</table>
</div></div>
<div class="container"><div class="doc-mainbox-big-gold">
<div class="doc-anchor"><a href="#TOP">[^]</a></div>
<table class="doc-table" frame="void" rules="groups" width="100%" border="1" CELLPADDING="1" CELLSPACING="0">
<colgroup align="left">
<col width="25%">
<col width="18%">
<col width="52%">
<col width="5%">
</colgroup>
<tbody><tr><th align="center" colspan="4"><a name="Array">Array</a></th></tr></tbody>
<tbody><tr id="doc-table-dark"><th align="left" colspan="4">Explanation</th></tr></tbody>
<tbody><tr><td colspan="4">Data structure for linear storage, dynamically resizes to fit more elements. Declare with var a := array;</td></tr></tbody>
<tbody><tr id="doc-table-dark"><th align="left" colspan="4">Methods</th></tr></tbody>
<tbody><tr id="doc-table-med">
<td>Prototype</td>
<td>Returns</td>
<td colspan="2">Desc</td>
</tr></tbody>
<tbody>
<tr>
<td>+ array</td>
<td>array</td>
<td colspan="2">concatinates 2 arrays</td>
</tr>
<tr id="doc-table-light">
<td>append(object)</td>
<td>true/error</td>
<td colspan="2">inserts object in the end of the array</td>
</tr>
<tr>
<td>erase(int index)</td>
<td>true/false</td>
<td colspan="2">erases the element at index</td>
</tr>
<tr id="doc-table-light">
<td>exists(index)</td>
<td>error/int</td>
<td colspan="2">Returns 1 if index is in array.</td>
</tr>
<tr>
<td>insert(int index, object)</td>
<td>void/error</td>
<td colspan="2">inserts a new object into the array at index</td>
</tr>
<tr id="doc-table-light">
<td>reverse()</td>
<td>true</td>
<td colspan="2">reverses the elements of the array</td>
</tr>
<tr>
<td>shrink(index)</td>
<td>true/error</td>
<td colspan="2">erases index to end of array</td>
</tr>
<tr id="doc-table-light">
<td>size()</td>
<td>int</td>
<td colspan="2">number of elements in the array</td>
</tr>
<tr>
<td>sort()</td>
<td>true</td>
<td colspan="2">sorts the elements of the array</td>
</tr>
</tbody>
</table>
</div></div>
<div class="container"><div class="doc-mainbox-big-gold">
<div class="doc-anchor"><a href="#TOP">[^]</a></div>
<table class="doc-table" frame="void" rules="groups" width="100%" border="1" CELLPADDING="1" CELLSPACING="0">
<colgroup align="left">
<col width="25%">
<col width="18%">
<col width="52%">
<col width="5%">
</colgroup>
<tbody><tr><th align="center" colspan="4"><a name="AuxConnection">AuxConnection</a></th></tr></tbody>
<tbody><tr id="doc-table-dark"><th align="left" colspan="4">Explanation</th></tr></tbody>
<tbody><tr><td colspan="4">An object passed to an Aux Service Script that allows the script to transmit and recieve packed data over a TCP/IP port. use wait_for_event() in the service script to recieve data. </td></tr></tbody>
<tbody><tr id="doc-table-dark"><th align="left" colspan="4">Members</th></tr></tbody>
<tbody><tr id="doc-table-med">
<td>Name</td>
<td>Type</td>
<td>Desc</td>
<td>Access</td>
</tr></tbody>
<tbody><tr>
<td>ip</td>
<td>String</td>
<td>Originating IP on the AuxConnection Pipe</td>
<td>r/o</td>
</tr></tbody>
<tbody><tr id="doc-table-dark"><th align="left" colspan="4">Methods</th></tr></tbody>
<tbody><tr id="doc-table-med">
<td>Prototype</td>
<td>Returns</td>
<td colspan="2">Desc</td>
</tr></tbody>
<tbody><tr>
<td>transmit(object o)</td>
<td>error/0</td>
<td colspan="2">Transmits the packable object 'o' over the Aux connection.</td>
</tr></tbody>
</table>
</div></div>
<div class="container"><div class="doc-mainbox-big-gold">
<div class="doc-anchor"><a href="#TOP">[^]</a></div>
<table class="doc-table" frame="void" rules="groups" width="100%" border="1" CELLPADDING="1" CELLSPACING="0">
<colgroup align="left">
<col width="25%">
<col width="18%">
<col width="52%">
<col width="5%">
</colgroup>
<tbody><tr><th align="center" colspan="4"><a name="Boat">Boat</a></th></tr></tbody>
<tbody><tr id="doc-table-dark"><th align="left" colspan="4">Parent</th></tr></tbody>
<tbody><tr><td colspan="4"><a href="#Multi">Multi</a></td></tr></tbody>
<tbody><tr id="doc-table-dark"><th align="left" colspan="4">Explanation</th></tr></tbody>
<tbody><tr><td colspan="4">A Multi object that moves in water.</td></tr></tbody>
<tbody><tr id="doc-table-dark"><th align="left" colspan="4">Members</th></tr></tbody>
<tbody><tr id="doc-table-med">
<td>Name</td>
<td>Type</td>
<td>Desc</td>
<td>Access</td>
</tr></tbody>
<tbody>
<tr>
<td>has_offline_mobiles</td>
<td>Boolean</td>
<td>true if players are logged out on the deck</td>
<td>r/o</td>
</tr>
<tr id="doc-table-light">
<td>hold</td>
<td>Item</td>
<td>ItemRef to the hold container item</td>
<td>r/o</td>
</tr>
<tr>
<td>items</td>
<td>Array</td>
<td>Array of Item References on the deck of the boat</td>
<td>r/o</td>
</tr>
<tr id="doc-table-light">
<td>mobiles</td>
<td>Array</td>
<td>Array of Character References on the deck</td>
<td>r/o</td>
</tr>
<tr>
<td>portplank</td>
<td>Item</td>
<td>ItemRef to the left-side plank item</td>
<td>r/o</td>
</tr>
<tr id="doc-table-light">
<td>starboardplank</td>
<td>Item</td>
<td>ItemRef to the right-side plank item</td>
<td>r/o</td>
</tr>
<tr>
<td>tillerman</td>
<td>Item</td>
<td>ItemRef to the tillerman item</td>
<td>r/o</td>
</tr>
</tbody>
<tbody><tr id="doc-table-dark"><th align="left" colspan="4">Methods</th></tr></tbody>
<tbody><tr id="doc-table-med">
<td>Prototype</td>
<td>Returns</td>
<td colspan="2">Desc</td>
</tr></tbody>
<tbody><tr>
<td>move_offline_mobiles(int x, int y, int z[, string realm])</td>
<td>true/false</td>
<td colspan="2">moves offline mobiles on boat to x,y,z. If realm is not set, Boat-realm is used.</td>
</tr></tbody>
</table>
</div></div>
<div class="container"><div class="doc-mainbox-big-gold">
<div class="doc-anchor"><a href="#TOP">[^]</a></div>
<table class="doc-table" frame="void" rules="groups" width="100%" border="1" CELLPADDING="1" CELLSPACING="0">
<colgroup align="left">
<col width="25%">
<col width="18%">
<col width="52%">
<col width="5%">
</colgroup>
<tbody><tr><th align="center" colspan="4"><a name="Character">Character</a></th></tr></tbody>
<tbody><tr id="doc-table-dark"><th align="left" colspan="4">Parent</th></tr></tbody>
<tbody><tr><td colspan="4"><a href="#UObject">UObject</a></td></tr></tbody>
<tbody><tr id="doc-table-dark"><th align="left" colspan="4">Children</th></tr></tbody>
<tbody><tr><td colspan="4"><a href="#NPC">NPC</a></td></tr></tbody>
<tbody><tr id="doc-table-dark"><th align="left" colspan="4">Explanation</th></tr></tbody>
<tbody><tr><td colspan="4">A mobile object that exists in the world (NPC or player character)</td></tr></tbody>
<tbody><tr id="doc-table-dark"><th align="left" colspan="4">Members</th></tr></tbody>
<tbody><tr id="doc-table-med">
<td>Name</td>
<td>Type</td>
<td>Desc</td>
<td>Access</td>
</tr></tbody>
<tbody>
<tr>
<td>acct</td>
<td>Integer</td>
<td>Account Reference (if not NPC)</td>
<td>r/o</td>
</tr>
<tr id="doc-table-light">
<td>acctname</td>
<td>Account</td>
<td>Account name string (if not NPC)</td>
<td>r/o</td>
</tr>
<tr>
<td>ar</td>
<td>Integer</td>
<td>Total armor factor. If it's an NPC without armor equipped, it will return its intrinsic armor value taken from NpcDesc AR entry.</td>
<td>r/o</td>
</tr>
<tr id="doc-table-light">
<td>ar_mod</td>
<td>Integer</td>
<td>Armor factor modifier</td>
<td>r/w</td>
</tr>
<tr>
<td>attached</td>
<td>Script</td>
<td>Script reference for attached script</td>
<td>r/o</td>
</tr>
<tr id="doc-table-light">
<td>backpack</td>
<td>Item</td>
<td>Reference to character's pack (if any)</td>
<td>r/o</td>
</tr>
<tr>
<td>candidate_of_party</td>
<td>Party</td>
<td>party object reference</td>
<td>r/o</td>
</tr>
<tr id="doc-table-light">
<td>clientinfo</td>
<td>Struct</td>
<td>UO Client information struct (check out core-changes.txt for an example)</td>
<td>r/o</td>
</tr>
<tr>
<td>clientver_detail</td>
<td>Struct</td>
<td>UO Client version string as Struct of Ints {major;minor;rev;patch}</td>
<td>r/o</td>
</tr>
<tr id="doc-table-light">
<td>clientversion</td>
<td>String</td>
<td>UO Client version string</td>
<td>r/o</td>
</tr>
<tr>
<td>cmdlevel</td>
<td>Integer</td>
<td>command level of character</td>
<td>r/w</td>
</tr>
<tr id="doc-table-light">
<td>cmdlevelstr</td>
<td>String</td>
<td>string name of command level</td>
<td>r/o</td>
</tr>
<tr>
<td>concealed</td>
<td>Integer</td>
<td>concealed below this value cannot see</td>
<td>r/w</td>
</tr>
<tr id="doc-table-light">
<td>connected</td>
<td>Boolean</td>
<td>To determine if the character is actively connected to the game. Is set to 1 before logon/reconnect scripts are run and 0 right before logofftest is run. Will return 1 on NPC.</td>
<td>r/o</td>
</tr>
<tr>
<td>createdat</td>
<td>Integer</td>
<td>PolClock when character was created</td>
<td>r/o</td>
</tr>
<tr id="doc-table-light">
<td>criminal</td>
<td>Integer</td>
<td>1 = player is criminal (gray)</td>
<td>r/o</td>
</tr>
<tr>
<td>cursor</td>
<td>Boolean</td>
<td>True if the client has an active target cursor</td>
<td>r/o</td>
</tr>
<tr id="doc-table-light">
<td>damage_cold</td>
<td>Integer</td>
<td>Total AOS+ damage factor.</td>
<td>r/o</td>
</tr>
<tr>
<td>damage_cold_mod</td>
<td>Integer</td>
<td>AOS+ damage modifier</td>
<td>r/w</td>
</tr>
<tr id="doc-table-light">
<td>damage_energy</td>
<td>Integer</td>
<td>Total AOS+ damage factor.</td>
<td>r/o</td>
</tr>
<tr>
<td>damage_energy_mod</td>
<td>Integer</td>
<td>AOS+ damage modifier</td>
<td>r/w</td>
</tr>
<tr id="doc-table-light">
<td>damage_fire</td>
<td>Integer</td>
<td>Total AOS+ damage factor.</td>
<td>r/o</td>
</tr>
<tr>
<td>damage_fire_mod</td>
<td>Integer</td>
<td>AOS+ damage modifier</td>
<td>r/w</td>
</tr>
<tr id="doc-table-light">
<td>damage_physical</td>
<td>Integer</td>
<td>Total AOS+ damage factor.</td>
<td>r/o</td>
</tr>
<tr>
<td>damage_physical_mod</td>
<td>Integer</td>
<td>AOS+ damage modifier</td>
<td>r/w</td>
</tr>
<tr id="doc-table-light">
<td>damage_poison</td>
<td>Integer</td>
<td>Total AOS+ damage factor.</td>
<td>r/o</td>
</tr>
<tr>
<td>damage_poison_mod</td>
<td>Integer</td>
<td>AOS+ damage modifier</td>
<td>r/w</td>
</tr>
<tr id="doc-table-light">
<td>dead</td>
<td>Integer</td>
<td>1 = player is dead</td>
<td>r/o</td>
</tr>
<tr>
<td>delay_mod</td>
<td>Integer</td>
<td>Weapon Delay modifier</td>
<td>r/w</td>
</tr>
<tr id="doc-table-light">
<td>evasionchance_mod</td>
<td>Integer</td>
<td>Subtractive modificator of the hitchance from the defender (+- int in thousandth)</td>
<td>r/w</td>
</tr>
<tr>
<td>followers</td>
<td>Integer</td>
<td>This is for storage for the Followers byte in statmsg packet, default 0 </td>
<td>r/w</td>
</tr>
<tr id="doc-table-light">
<td>followers_max</td>
<td>Integer</td>
<td>Max followers for statmsg packet, default 0 </td>
<td>r/w</td>
</tr>
<tr>
<td>frozen</td>
<td>Boolean</td>
<td>1 = player is frozen (by a GM)</td>
<td>r/w</td>
</tr>
<tr id="doc-table-light">
<td>gender</td>
<td>Integer</td>
<td>0=male 1=female</td>
<td>r/w</td>
</tr>
<tr>
<td>getcorpse</td>
<td>ItemRef</td>
<td>Most recent Corpse made.</td>
<td>r/o</td>
</tr>
<tr id="doc-table-light">
<td>gold</td>
<td>Integer</td>
<td>Amount of gold in character's pack</td>
<td>r/o</td>
</tr>
<tr>
<td>guild</td>
<td>Guild</td>
<td>guild object reference</td>
<td>r/o</td>
</tr>
<tr id="doc-table-light">
<td>guildid</td>
<td>Integer</td>
<td>guild ID number</td>
<td>r/o</td>
</tr>
<tr>
<td>gump</td>
<td>Boolean</td>
<td>True if the client has any active gumps from SendGump</td>
<td>r/o</td>
</tr>
<tr id="doc-table-light">
<td>hidden</td>
<td>Boolean</td>
<td>1 = normal players cannot see</td>
<td>r/w</td>
</tr>
<tr>
<td>hitchance_mod</td>
<td>Integer</td>
<td>Additive modificator of the hitchance from the attacker (+- int in thousandth)</td>
<td>r/w</td>
</tr>
<tr id="doc-table-light">
<td>ip</td>
<td>String</td>
<td>IP Address string</td>
<td>r/o</td>
</tr>
<tr>
<td>isUOKR</td>
<td>Boolean</td>
<td>True if the client being used is an UO:KR client</td>
<td>r/o</td>
</tr>
<tr id="doc-table-light">
<td>luck</td>
<td>Integer</td>
<td>Luck for statmsg packet, default 0 </td>
<td>r/w</td>
</tr>
<tr>
<td>movemode</td>
<td>String</td>
<td>movemode string {default 'L'} like from NPCDesc.cfg</td>
<td>r/o</td>
</tr>
<tr id="doc-table-light">
<td>murderer</td>
<td>Boolean</td>
<td>1 = player flagged murderer (red)</td>
<td>r/w</td>
</tr>
<tr>
<td>opponent</td>
<td>MobileRef</td>
<td>Mobile reference if a combat opponent is selected.</td>
<td>r/o</td>
</tr>
<tr id="doc-table-light">
<td>paralyzed</td>
<td>Boolean</td>
<td>1 = player is paralyzed</td>
<td>r/w</td>
</tr>
<tr>
<td>party</td>
<td>Party</td>
<td>party object reference</td>
<td>r/o</td>
</tr>
<tr id="doc-table-light">
<td>partycanloot</td>
<td>Boolean</td>
<td>True if client has set the loot rights</td>
<td>r/o</td>
</tr>
<tr>
<td>poisoned</td>
<td>Boolean</td>
<td>1 = player is poisoned</td>
<td>r/w</td>
</tr>
<tr id="doc-table-light">
<td>prompt</td>
<td>Boolean</td>
<td>True if the client has any active String or Unicode prompt windows</td>
<td>r/o</td>
</tr>
<tr>
<td>race</td>
<td>Integer</td>
<td>Set/get the ML race (new constants in UO.EM: RACE_HUMAN, RACE_ELF). You have to set visual graphic by yourself if you change value (Human male/female = 0x190/0x191 / Elf male/female = 0x25d/0x25e). You can choose Race at Char creation if your UOExpansion and UOFeature settings fit.</td>
<td>r/w</td>
</tr>
<tr id="doc-table-light">
<td>reportables</td>
<td>Array</td>
<td>(reputation system) Array of Structs: { serial, killer, gameclock }, serial = killer's serial, killer = 'offline mobile reference' to the killer, gameclock = game time when the death occurred</td>
<td>r/o</td>
</tr>
<tr>
<td>resist_cold</td>
<td>Integer</td>
<td>Total AOS+ armor factor. If it's an NPC without armor equipped, it will return its intrinsic armor value taken from NpcDesc AR entry.</td>
<td>r/o</td>
</tr>
<tr id="doc-table-light">
<td>resist_cold_mod</td>
<td>Integer</td>
<td>AOS+ Armor factor modifier (Player)</td>
<td>r/w</td>
</tr>
<tr>
<td>resist_energy</td>
<td>Integer</td>
<td>Total AOS+ armor factor. If it's an NPC without armor equipped, it will return its intrinsic armor value taken from NpcDesc AR entry.</td>
<td>r/o</td>
</tr>
<tr id="doc-table-light">
<td>resist_energy_mod</td>
<td>Integer</td>
<td>AOS+ Armor factor modifier (Player)</td>
<td>r/w</td>
</tr>
<tr>
<td>resist_fire</td>
<td>Integer</td>
<td>Total AOS+ armor factor. If it's an NPC without armor equipped, it will return its intrinsic armor value taken from NpcDesc AR entry.</td>
<td>r/o</td>
</tr>
<tr id="doc-table-light">
<td>resist_fire_mod</td>
<td>Integer</td>
<td>AOS+ Armor factor modifier (Player)</td>
<td>r/w</td>
</tr>
<tr>
<td>resist_physical</td>
<td>Integer</td>
<td>Total AOS+ armor factor. If it's an NPC without armor equipped, it will return its intrinsic armor value taken from NpcDesc AR entry.</td>
<td>r/o</td>
</tr>
<tr id="doc-table-light">
<td>resist_physical_mod</td>
<td>Integer</td>
<td>AOS+ Armor factor modifier (Player)</td>
<td>r/w</td>
</tr>
<tr>
<td>resist_poison</td>
<td>Integer</td>
<td>Total AOS+ armor factor. If it's an NPC without armor equipped, it will return its intrinsic armor value taken from NpcDesc AR entry.</td>
<td>r/o</td>
</tr>
<tr id="doc-table-light">
<td>resist_poison_mod</td>
<td>Integer</td>
<td>AOS+ Armor factor modifier (Player)</td>
<td>r/w</td>
</tr>
<tr>
<td>shield</td>
<td>Armor</td>
<td>Returns the ItemRef of the sheild, if any, is worn.</td>
<td>r/o</td>
</tr>
<tr id="doc-table-light">
<td>skillcap</td>
<td>Integer</td>
<td>This is for storage of overall skillcap, default 700</td>
<td>r/w</td>
</tr>
<tr>
<td>squelched</td>
<td>Integer</td>
<td>1 = player cannot speak</td>
<td>r/o</td>
</tr>
<tr id="doc-table-light">
<td>statcap</td>
<td>Integer</td>
<td>AOS+ Statcap entry in statusbar, default 255</td>
<td>r/w</td>
</tr>
<tr>
<td>stealthsteps</td>
<td>Integer</td>
<td>number of walk steps left until player is revealed</td>
<td>r/w</td>
</tr>
<tr id="doc-table-light">
<td>tithing</td>
<td>Integer</td>
<td>Tithing for statmsg packet, default 0 </td>
<td>r/w</td>
</tr>
<tr>
<td>title_guild</td>
<td>String</td>
<td>String guild title i.e. [ROX, super d00d] Racalac</td>
<td>r/w</td>
</tr>
<tr id="doc-table-light">
<td>title_prefix</td>
<td>String</td>
<td>String placed before name i.e. Lord Racalac</td>
<td>r/w</td>
</tr>
<tr>
<td>title_race</td>
<td>String</td>
<td>String race title after suffix in paperdoll</td>
<td>r/w</td>
</tr>
<tr id="doc-table-light">
<td>title_suffix</td>
<td>String</td>
<td>String placed after name i.e. Racalac the Brave</td>
<td>r/w</td>
</tr>
<tr>
<td>trading_with</td>
<td>CharRef</td>
<td>Reference to character they are trading with (if any)</td>
<td>r/o</td>
</tr>
<tr id="doc-table-light">
<td>truecolor</td>
<td>Integer</td>
<td>original color</td>
<td>r/w</td>
</tr>
<tr>
<td>trueobjtype</td>
<td>Integer</td>
<td>original objtype</td>
<td>r/w</td>
</tr>
<tr id="doc-table-light">
<td>uclang</td>
<td>String</td>
<td>Reports the Unicode Language string client sends during logon.</td>
<td>r/o</td>
</tr>
<tr>
<td>warmode</td>
<td>Integer</td>
<td>1 if in warmode</td>
<td>r/o</td>
</tr>
<tr id="doc-table-light">
<td>weapon</td>
<td>Item</td>
<td>Reference to character's weapon (if any)</td>
<td>r/o</td>
</tr>
</tbody>
<tbody><tr id="doc-table-dark"><th align="left" colspan="4">Methods</th></tr></tbody>
<tbody><tr id="doc-table-med">
<td>Prototype</td>
<td>Returns</td>
<td colspan="2">Desc</td>
</tr></tbody>
<tbody>
<tr>
<td>attack_once([MobileRef opp])</td>
<td>true/error</td>
<td colspan="2">Attacks once without modifing the swingtimer. If no opp is given attacks current attackable opponent, else attacks given opponent (but checks if still attackable)</td>
</tr>
<tr id="doc-table-light">
<td>cleargottenitem()</td>
<td>true/error</td>
<td colspan="2">Returns 'dragged' item to original location.</td>
</tr>
<tr>
<td>compareversion(string Version)</td>
<td>true/false</td>
<td colspan="2">true if Client Version &gt;= given Versionstring</td>
</tr>
<tr id="doc-table-light">
<td>disable(string setting)</td>
<td>true</td>
<td colspan="2">disables the 'granted' privilage to the character</td>
</tr>
<tr>
<td>enable(string setting)</td>
<td>true/error</td>
<td colspan="2">enables the 'granted' privilage to the character</td>
</tr>
<tr id="doc-table-light">
<td>enabled(string setting)</td>
<td>true/false</td>
<td colspan="2">true if the privilage is enabled</td>
</tr>
<tr>
<td>getgottenitem()</td>
<td>error/ItemRef</td>
<td colspan="2">returns an ItemRef to the item held on the player's cursor, if any.</td>
</tr>
<tr id="doc-table-light">
<td>kill([MobileRef killer])</td>
<td>true</td>
<td colspan="2">Kills character ignoring invul, if killer is set repsys:OnDamage is called</td>
</tr>
<tr>
<td>privileges()</td>
<td>dictionary</td>
<td colspan="2">Dictionary where keys are privilege name, value is 0/1 boolean.</td>
</tr>
<tr id="doc-table-light">
<td>removereportable(int serial, int gameclock)</td>
<td>true/error</td>
<td colspan="2">removes the killer with 'serial' from the reportables list that was added at 'gameclock'</td>
</tr>
<tr>
<td>setcmdlevel(string cmdlevel)</td>
<td>true/error</td>
<td colspan="2">grants the command level to the char as defined in cmds.cfg</td>
</tr>
<tr id="doc-table-light">
<td>setcriminal(int level)</td>
<td>true/error</td>
<td colspan="2">sets the character criminal. level multiplies the CriminalFlagInterval as defined in repsys.cfg. level=0 clears criminal timer.</td>
</tr>
<tr>
<td>setfacing(string/int direction, flags := FACE_NORMAL)</td>
<td>true/error</td>
<td colspan="2">Sets Facing to given direction. If FACE_FORCE is set frozen/paralysed is not checked</td>
</tr>
<tr id="doc-table-light">
<td>setlightlevel(int level, int duration)</td>
<td>true</td>
<td colspan="2">sets the light level of the character to 'level' for 'duration' seconds</td>
</tr>
<tr>
<td>setmurderer(bool)</td>
<td>true/error</td>
<td colspan="2">flags the character as a murderer (red)</td>
</tr>
<tr id="doc-table-light">
<td>setparalyzed(bool)</td>
<td>true/error</td>
<td colspan="2">sets the character paralyzed, controller of calling script is flagged as in repsystem</td>
</tr>
<tr>
<td>setpoisoned(bool)</td>
<td>true/error</td>
<td colspan="2">sets the character poisoned, controller of calling script is flagged as in repsystem</td>
</tr>
<tr id="doc-table-light">
<td>setswingtimer(int time)</td>
<td>true/error</td>
<td colspan="2">If opponent is set sets swingtimer to given ms time.</td>
</tr>
<tr>
<td>setwarmode(boolean)</td>
<td>integer/error</td>
<td colspan="2">Sets the internal warmode flag and sends the update to the player. Returns the new warmode value.</td>
</tr>
<tr id="doc-table-light">
<td>spendgold(int amount)</td>
<td>true/error</td>
<td colspan="2">if enough gold, removes it from the player's pack</td>
</tr>
<tr>
<td>squelch(int duration)</td>
<td>true</td>
<td colspan="2">character cannot talk for 'duration' seconds. -1 means forever. 0 clears the squelch</td>
</tr>
</tbody>
</table>
</div></div>
<div class="container"><div class="doc-mainbox-big-gold">
<div class="doc-anchor"><a href="#TOP">[^]</a></div>
<table class="doc-table" frame="void" rules="groups" width="100%" border="1" CELLPADDING="1" CELLSPACING="0">
<colgroup align="left">
<col width="25%">
<col width="18%">
<col width="52%">
<col width="5%">
</colgroup>
<tbody><tr><th align="center" colspan="4"><a name="Container">Container</a></th></tr></tbody>
<tbody><tr id="doc-table-dark"><th align="left" colspan="4">Parent</th></tr></tbody>
<tbody><tr><td colspan="4"><a href="#Lockable">Lockable</a></td></tr></tbody>
<tbody><tr id="doc-table-dark"><th align="left" colspan="4">Children</th></tr></tbody>
<tbody><tr><td colspan="4"><a href="#Corpse">Corpse</a></td></tr></tbody>
<tbody><tr id="doc-table-dark"><th align="left" colspan="4">Explanation</th></tr></tbody>
<tbody><tr><td colspan="4">Items that can be locked, and have other items inside them</td></tr></tbody>
</table>
</div></div>
<div class="container"><div class="doc-mainbox-big-gold">
<div class="doc-anchor"><a href="#TOP">[^]</a></div>
<table class="doc-table" frame="void" rules="groups" width="100%" border="1" CELLPADDING="1" CELLSPACING="0">
<colgroup align="left">
<col width="25%">
<col width="18%">
<col width="52%">
<col width="5%">
</colgroup>
<tbody><tr><th align="center" colspan="4"><a name="Corpse">Corpse</a></th></tr></tbody>
<tbody><tr id="doc-table-dark"><th align="left" colspan="4">Parent</th></tr></tbody>
<tbody><tr><td colspan="4"><a href="#Lockable">Lockable</a></td></tr></tbody>
<tbody><tr id="doc-table-dark"><th align="left" colspan="4">Explanation</th></tr></tbody>
<tbody><tr><td colspan="4">Objects that are created when character objects are killed</td></tr></tbody>
<tbody><tr id="doc-table-dark"><th align="left" colspan="4">Members</th></tr></tbody>
<tbody><tr id="doc-table-med">
<td>Name</td>
<td>Type</td>
<td>Desc</td>
<td>Access</td>
</tr></tbody>
<tbody>
<tr>
<td>corpsetype</td>
<td>Integer</td>
<td>ObjType of the Character killed</td>
<td>r/o</td>
</tr>
<tr id="doc-table-light">
<td>ownerserial</td>
<td>Integer</td>
<td>Serial of the Mobile that died</td>
<td>r/o</td>
</tr>
</tbody>
</table>
</div></div>
<div class="container"><div class="doc-mainbox-big-gold">
<div class="doc-anchor"><a href="#TOP">[^]</a></div>
<table class="doc-table" frame="void" rules="groups" width="100%" border="1" CELLPADDING="1" CELLSPACING="0">
<colgroup align="left">
<col width="25%">
<col width="18%">
<col width="52%">
<col width="5%">
</colgroup>
<tbody><tr><th align="center" colspan="4"><a name="DataFileElement">DataFileElement</a></th></tr></tbody>
<tbody><tr id="doc-table-dark"><th align="left" colspan="4">Explanation</th></tr></tbody>
<tbody><tr><td colspan="4">A data element inside a datastore file</td></tr></tbody>
<tbody><tr id="doc-table-dark"><th align="left" colspan="4">Methods</th></tr></tbody>
<tbody><tr id="doc-table-med">
<td>Prototype</td>
<td>Returns</td>
<td colspan="2">Desc</td>
</tr></tbody>
<tbody>
<tr>
<td>EraseProp(string propname)</td>
<td>true/error</td>
<td colspan="2">Erases the property named 'propname'</td>
</tr>
<tr id="doc-table-light">
<td>GetProp(string propname)</td>
<td>script object/error</td>
<td colspan="2">Returns an unpacked script object (i.e. int,string,array,etc)</td>
</tr>
<tr>
<td>PropNames()</td>
<td>array</td>
<td colspan="2">Returns an array of property name strings</td>
</tr>
<tr id="doc-table-light">
<td>SetProp(string propname, object propvalue)</td>
<td>true/error</td>
<td colspan="2">Sets a packable object to a property</td>
</tr>
</tbody>
</table>
</div></div>
<div class="container"><div class="doc-mainbox-big-gold">
<div class="doc-anchor"><a href="#TOP">[^]</a></div>
<table class="doc-table" frame="void" rules="groups" width="100%" border="1" CELLPADDING="1" CELLSPACING="0">
<colgroup align="left">
<col width="25%">
<col width="18%">
<col width="52%">
<col width="5%">
</colgroup>
<tbody><tr><th align="center" colspan="4"><a name="Datafile">Datafile</a></th></tr></tbody>
<tbody><tr id="doc-table-dark"><th align="left" colspan="4">Explanation</th></tr></tbody>
<tbody><tr><td colspan="4">Object representing a data file in a data store</td></tr></tbody>
<tbody><tr id="doc-table-dark"><th align="left" colspan="4">Methods</th></tr></tbody>
<tbody><tr id="doc-table-med">
<td>Prototype</td>
<td>Returns</td>
<td colspan="2">Desc</td>
</tr></tbody>
<tbody>
<tr>
<td>CreateElement(key)</td>
<td>error/DataFileElemRef</td>
<td colspan="2">key is int or string, depending on datafile flags</td>
</tr>
<tr id="doc-table-light">
<td>DeleteElement(key)</td>
<td>error/true</td>
<td colspan="2">see key notes above</td>
</tr>
<tr>
<td>FindElement(key)</td>
<td>error/DataFileElemRef</td>
<td colspan="2">see key notes above</td>
</tr>
<tr id="doc-table-light">
<td>Keys()</td>
<td>array</td>
<td colspan="2">array of ints or strings, depending on datafile flags</td>
</tr>
</tbody>
</table>
</div></div>
<div class="container"><div class="doc-mainbox-big-gold">
<div class="doc-anchor"><a href="#TOP">[^]</a></div>
<table class="doc-table" frame="void" rules="groups" width="100%" border="1" CELLPADDING="1" CELLSPACING="0">
<colgroup align="left">
<col width="25%">
<col width="18%">
<col width="52%">
<col width="5%">
</colgroup>
<tbody><tr><th align="center" colspan="4"><a name="Datastore">Datastore</a></th></tr></tbody>
<tbody><tr id="doc-table-dark"><th align="left" colspan="4">Explanation</th></tr></tbody>
<tbody><tr><td colspan="4">Functions for manipulating a datastore. Not an actual object, but funcs found in datafile.em, presented here for completeness.</td></tr></tbody>
<tbody><tr id="doc-table-dark"><th align="left" colspan="4">Methods</th></tr></tbody>
<tbody><tr id="doc-table-med">
<td>Prototype</td>
<td>Returns</td>
<td colspan="2">Desc</td>
</tr></tbody>
<tbody>
<tr>
<td>CreateDataFile(string name, int flags)</td>
<td>DataFileRef/error</td>
<td colspan="2">Creates a datafile</td>
</tr>
<tr id="doc-table-light">
<td>OpenDataFile(string name)</td>
<td>DataFileRef/error</td>
<td colspan="2">Opens a datafile</td>
</tr>
<tr>
<td>UnloadDataFile(string name)</td>
<td>true/error</td>
<td colspan="2">Unloads a datafile</td>
</tr>
</tbody>
</table>
</div></div>
<div class="container"><div class="doc-mainbox-big-gold">
<div class="doc-anchor"><a href="#TOP">[^]</a></div>
<table class="doc-table" frame="void" rules="groups" width="100%" border="1" CELLPADDING="1" CELLSPACING="0">
<colgroup align="left">
<col width="25%">
<col width="18%">
<col width="52%">
<col width="5%">
</colgroup>
<tbody><tr><th align="center" colspan="4"><a name="Dictionary">Dictionary</a></th></tr></tbody>
<tbody><tr id="doc-table-dark"><th align="left" colspan="4">Explanation</th></tr></tbody>
<tbody><tr><td colspan="4">Data structure for key-&gt;value pairs (i.e."associative array"). Keys may be intgers, strings, reals, mobrefs, or itemrefs. Declare with var d := dictionary;</td></tr></tbody>
<tbody><tr id="doc-table-dark"><th align="left" colspan="4">Methods</th></tr></tbody>
<tbody><tr id="doc-table-med">
<td>Prototype</td>
<td>Returns</td>
<td colspan="2">Desc</td>
</tr></tbody>
<tbody>
<tr>
<td>[key]</td>
<td>value</td>
<td colspan="2">gets value at key, or uninit if key doesn't exist</td>
</tr>
<tr id="doc-table-light">
<td>erase(key)</td>
<td>true/error</td>
<td colspan="2">erases a pair from the dict</td>
</tr>
<tr>
<td>exists(key)</td>
<td>error/int</td>
<td colspan="2">if exists, returns count of matching key</td>
</tr>
<tr id="doc-table-light">
<td>insert(key, value)</td>
<td>error/int</td>
<td colspan="2">inserts a pair into the dict, returns new size</td>
</tr>
<tr>
<td>keys()</td>
<td>array</td>
<td colspan="2">returns an array of the keys</td>
</tr>
<tr id="doc-table-light">
<td>size()</td>
<td>int</td>
<td colspan="2">number of pairs in dictionary</td>
</tr>
</tbody>
</table>
</div></div>
<div class="container"><div class="doc-mainbox-big-gold">
<div class="doc-anchor"><a href="#TOP">[^]</a></div>
<table class="doc-table" frame="void" rules="groups" width="100%" border="1" CELLPADDING="1" CELLSPACING="0">
<colgroup align="left">
<col width="25%">
<col width="18%">
<col width="52%">
<col width="5%">
</colgroup>
<tbody><tr><th align="center" colspan="4"><a name="Door">Door</a></th></tr></tbody>
<tbody><tr id="doc-table-dark"><th align="left" colspan="4">Parent</th></tr></tbody>
<tbody><tr><td colspan="4"><a href="#Lockable">Lockable</a></td></tr></tbody>
<tbody><tr id="doc-table-dark"><th align="left" colspan="4">Explanation</th></tr></tbody>
<tbody><tr><td colspan="4">A door item that automatically closes.</td></tr></tbody>
<tbody><tr id="doc-table-dark"><th align="left" colspan="4">Members</th></tr></tbody>
<tbody><tr id="doc-table-med">
<td>Name</td>
<td>Type</td>
<td>Desc</td>
<td>Access</td>
</tr></tbody>
<tbody><tr>
<td>isopen </td>
<td>Boolean</td>
<td>true if the door is open</td>
<td>r/o</td>
</tr></tbody>
<tbody><tr id="doc-table-dark"><th align="left" colspan="4">Methods</th></tr></tbody>
<tbody><tr id="doc-table-med">
<td>Prototype</td>
<td>Returns</td>
<td colspan="2">Desc</td>
</tr></tbody>
<tbody>
<tr>
<td>close()</td>
<td>true</td>
<td colspan="2">closes the door</td>
</tr>
<tr id="doc-table-light">
<td>open()</td>
<td>true</td>
<td colspan="2">opens the door</td>
</tr>
<tr>
<td>toggle()</td>
<td>true</td>
<td colspan="2">toggles the door to the other state</td>
</tr>
</tbody>
</table>
</div></div>
<div class="container"><div class="doc-mainbox-big-gold">
<div class="doc-anchor"><a href="#TOP">[^]</a></div>
<table class="doc-table" frame="void" rules="groups" width="100%" border="1" CELLPADDING="1" CELLSPACING="0">
<colgroup align="left">
<col width="25%">
<col width="18%">
<col width="52%">
<col width="5%">
</colgroup>
<tbody><tr><th align="center" colspan="4"><a name="Equipment">Equipment</a></th></tr></tbody>
<tbody><tr id="doc-table-dark"><th align="left" colspan="4">Parent</th></tr></tbody>
<tbody><tr><td colspan="4"><a href="#Item">Item</a></td></tr></tbody>
<tbody><tr id="doc-table-dark"><th align="left" colspan="4">Children</th></tr></tbody>
<tbody>
<tr><td colspan="4"><a href="#Weapon">Weapon</a></td></tr>
<tr><td colspan="4"><a href="#Armor">Armor</a></td></tr>
</tbody>
<tbody><tr id="doc-table-dark"><th align="left" colspan="4">Explanation</th></tr></tbody>
<tbody><tr><td colspan="4">Class containing concrete subclasses which are equipable and have hit points</td></tr></tbody>
<tbody><tr id="doc-table-dark"><th align="left" colspan="4">Members</th></tr></tbody>
<tbody><tr id="doc-table-med">
<td>Name</td>
<td>Type</td>
<td>Desc</td>
<td>Access</td>
</tr></tbody>
<tbody>
<tr>
<td>hp</td>
<td>Integer</td>
<td>Hit points of item</td>
<td>r/w</td>
</tr>
<tr id="doc-table-light">
<td>maxhp</td>
<td>Integer</td>
<td>Maximum Hit Points of item</td>
<td>r/o</td>
</tr>
<tr>
<td>maxhp_mod</td>
<td>Integer</td>
<td>Maximum Hit Point modification</td>
<td>r/w</td>
</tr>
<tr id="doc-table-light">
<td>quality</td>
<td>Double</td>
<td>1.0=Average</td>
<td>r/w</td>
</tr>
</tbody>
</table>
</div></div>
<div class="container"><div class="doc-mainbox-big-gold">
<div class="doc-anchor"><a href="#TOP">[^]</a></div>
<table class="doc-table" frame="void" rules="groups" width="100%" border="1" CELLPADDING="1" CELLSPACING="0">
<colgroup align="left">
<col width="25%">
<col width="18%">
<col width="52%">
<col width="5%">
</colgroup>
<tbody><tr><th align="center" colspan="4"><a name="Error">Error</a></th></tr></tbody>
<tbody><tr id="doc-table-dark"><th align="left" colspan="4">Explanation</th></tr></tbody>
<tbody><tr><td colspan="4">An object representing a script error. Comparing this object against the keyword 'error' allows the scripter to know if the result of a core function was an error.</td></tr></tbody>
<tbody><tr id="doc-table-dark"><th align="left" colspan="4">Members</th></tr></tbody>
<tbody><tr id="doc-table-med">
<td>Name</td>
<td>Type</td>
<td>Desc</td>
<td>Access</td>
</tr></tbody>
<tbody><tr>
<td>errortext</td>
<td>String</td>
<td>Informational Error string</td>
<td>r/w</td>
</tr></tbody>
</table>
</div></div>
<div class="container"><div class="doc-mainbox-big-gold">
<div class="doc-anchor"><a href="#TOP">[^]</a></div>
<table class="doc-table" frame="void" rules="groups" width="100%" border="1" CELLPADDING="1" CELLSPACING="0">
<colgroup align="left">
<col width="25%">
<col width="18%">
<col width="52%">
<col width="5%">
</colgroup>
<tbody><tr><th align="center" colspan="4"><a name="Guild">Guild</a></th></tr></tbody>
<tbody><tr id="doc-table-dark"><th align="left" colspan="4">Explanation</th></tr></tbody>
<tbody><tr><td colspan="4">Object representing a player guild association</td></tr></tbody>
<tbody><tr id="doc-table-dark"><th align="left" colspan="4">Members</th></tr></tbody>
<tbody><tr id="doc-table-med">
<td>Name</td>
<td>Type</td>
<td>Desc</td>
<td>Access</td>
</tr></tbody>
<tbody>
<tr>
<td>allyguilds</td>
<td>Array</td>
<td>Array of GuildRefs who are allied guilds</td>
<td>r/o</td>
</tr>
<tr id="doc-table-light">
<td>enemyguilds</td>
<td>Array</td>
<td>Array of GuildRefs who are enemy guilds</td>
<td>r/o</td>
</tr>
<tr>
<td>guildid</td>
<td>Integer</td>
<td>Guild ID number</td>
<td>r/o</td>
</tr>
<tr id="doc-table-light">
<td>members</td>
<td>Array</td>
<td>Array of Character Refs who are guild members</td>
<td>r/o</td>
</tr>
</tbody>
<tbody><tr id="doc-table-dark"><th align="left" colspan="4">Methods</th></tr></tbody>
<tbody><tr id="doc-table-med">
<td>Prototype</td>
<td>Returns</td>
<td colspan="2">Desc</td>
</tr></tbody>
<tbody>
<tr>
<td>addallyguild(GuildRef)</td>
<td>true/error</td>
<td colspan="2">adds an ally guild</td>
</tr>
<tr id="doc-table-light">
<td>addenemyguild(GuildRef)</td>
<td>true/error</td>
<td colspan="2">adds an enemy guild</td>
</tr>
<tr>
<td>addmember(CharacterRef)</td>
<td>true/error</td>
<td colspan="2">adds a character to the guild</td>
</tr>
<tr id="doc-table-light">
<td>eraseprop(string propname)</td>
<td>true/error</td>
<td colspan="2">Erases the property named 'propname'.</td>
</tr>
<tr>
<td>getprop(string propname)</td>
<td>script object/error</td>
<td colspan="2">Returns an unpacked script object (i.e. int,string,array,etc)</td>
</tr>
<tr id="doc-table-light">
<td>isallyguild(GuildRef)</td>
<td>true/error</td>
<td colspan="2">true if the guild is an ally</td>
</tr>
<tr>
<td>isenemyguild(GuildRef)</td>
<td>true/error</td>
<td colspan="2">true if the guild is an enemy</td>
</tr>
<tr id="doc-table-light">
<td>ismember(Character)</td>
<td>error/true</td>
<td colspan="2">true if the character is a member of the guild</td>
</tr>
<tr>
<td>propnames()</td>
<td>Array</td>
<td colspan="2">Returns an array of property name strings.</td>
</tr>
<tr id="doc-table-light">
<td>removeallyguild(GuildRef)</td>
<td>true/error</td>
<td colspan="2">removes an ally guild</td>
</tr>
<tr>
<td>removeenemyguild(GuildRef)</td>
<td>true/error</td>
<td colspan="2">removes an enemy guild</td>
</tr>
<tr id="doc-table-light">
<td>removemember(CharacterRef)</td>
<td>true/error</td>
<td colspan="2">removes a character member</td>
</tr>
<tr>
<td>setprop(string propname, object propval)</td>
<td>true/error</td>
<td colspan="2">Sets a packable object to a property.</td>
</tr>
</tbody>
</table>
</div></div>
<div class="container"><div class="doc-mainbox-big-gold">
<div class="doc-anchor"><a href="#TOP">[^]</a></div>
<table class="doc-table" frame="void" rules="groups" width="100%" border="1" CELLPADDING="1" CELLSPACING="0">
<colgroup align="left">
<col width="25%">
<col width="18%">
<col width="52%">
<col width="5%">
</colgroup>
<tbody><tr><th align="center" colspan="4"><a name="House">House</a></th></tr></tbody>
<tbody><tr id="doc-table-dark"><th align="left" colspan="4">Parent</th></tr></tbody>
<tbody><tr><td colspan="4"><a href="#Multi">Multi</a></td></tr></tbody>
<tbody><tr id="doc-table-dark"><th align="left" colspan="4">Explanation</th></tr></tbody>
<tbody><tr><td colspan="4">A Multi object where players hoard items.</td></tr></tbody>
<tbody><tr id="doc-table-dark"><th align="left" colspan="4">Members</th></tr></tbody>
<tbody><tr id="doc-table-med">
<td>Name</td>
<td>Type</td>
<td>Desc</td>
<td>Access</td>
</tr></tbody>
<tbody>
<tr>
<td>components</td>
<td>Array</td>
<td>Array of House components, i.e. sign, doors</td>
<td>r/o</td>
</tr>
<tr id="doc-table-light">
<td>custom</td>
<td>Boolean</td>
<td>1 = custom house (for upcoming custom house support)</td>
<td>r/o</td>
</tr>
<tr>
<td>items</td>
<td>Array</td>
<td>Array of Item References in the house</td>
<td>r/o</td>
</tr>
<tr id="doc-table-light">
<td>mobiles</td>
<td>Array</td>
<td>Array of Character References in the house</td>
<td>r/o</td>
</tr>
</tbody>
<tbody><tr id="doc-table-dark"><th align="left" colspan="4">Methods</th></tr></tbody>
<tbody><tr id="doc-table-med">
<td>Prototype</td>
<td>Returns</td>
<td colspan="2">Desc</td>
</tr></tbody>
<tbody>
<tr>
<td>add_component(ItemRef)</td>
<td>true/error</td>
<td colspan="2">Add item to House components</td>
</tr>
<tr id="doc-table-light">
<td>erase_component(ItemRef)</td>
<td>true/error</td>
<td colspan="2">Erase item from House components</td>
</tr>
</tbody>
</table>
</div></div>
<div class="container"><div class="doc-mainbox-big-gold">
<div class="doc-anchor"><a href="#TOP">[^]</a></div>
<table class="doc-table" frame="void" rules="groups" width="100%" border="1" CELLPADDING="1" CELLSPACING="0">
<colgroup align="left">
<col width="25%">
<col width="18%">
<col width="52%">
<col width="5%">
</colgroup>
<tbody><tr><th align="center" colspan="4"><a name="Item">Item</a></th></tr></tbody>
<tbody><tr id="doc-table-dark"><th align="left" colspan="4">Parent</th></tr></tbody>
<tbody><tr><td colspan="4"><a href="#UObject">UObject</a></td></tr></tbody>
<tbody><tr id="doc-table-dark"><th align="left" colspan="4">Children</th></tr></tbody>
<tbody>
<tr><td colspan="4"><a href="#Equipment">Equipment</a></td></tr>
<tr><td colspan="4"><a href="#Lockable">Lockable</a></td></tr>
<tr><td colspan="4"><a href="#Map">Map</a></td></tr>
<tr><td colspan="4"><a href="#Multi">Multi</a></td></tr>
</tbody>
<tbody><tr id="doc-table-dark"><th align="left" colspan="4">Explanation</th></tr></tbody>
<tbody><tr><td colspan="4">Represents a physical item in the world.</td></tr></tbody>
<tbody><tr id="doc-table-dark"><th align="left" colspan="4">Members</th></tr></tbody>
<tbody><tr id="doc-table-med">
<td>Name</td>
<td>Type</td>
<td>Desc</td>
<td>Access</td>
</tr></tbody>
<tbody>
<tr>
<td>amount</td>
<td>Integer</td>
<td>stack size</td>
<td>r/o</td>
</tr>
<tr id="doc-table-light">
<td>buyprice</td>
<td>Integer</td>
<td>Amount of gold an NPC buys this item for. 0=not for sale, -1=itemdesc default.</td>
<td>r/w</td>
</tr>
<tr>
<td>container</td>
<td>Item</td>
<td>item contained in</td>
<td>r/o</td>
</tr>
<tr id="doc-table-light">
<td>damage_cold</td>
<td>Integer</td>
<td>Total AOS+ damage factor.</td>
<td>r/o</td>
</tr>
<tr>
<td>damage_cold_mod</td>
<td>Integer</td>
<td>AOS+ damage modifier</td>
<td>r/w</td>
</tr>
<tr id="doc-table-light">
<td>damage_energy</td>
<td>Integer</td>
<td>Total AOS+ damage factor.</td>
<td>r/o</td>
</tr>
<tr>
<td>damage_energy_mod</td>
<td>Integer</td>
<td>AOS+ damage modifier</td>
<td>r/w</td>
</tr>
<tr id="doc-table-light">
<td>damage_fire</td>
<td>Integer</td>
<td>Total AOS+ damage factor.</td>
<td>r/o</td>
</tr>
<tr>
<td>damage_fire_mod</td>
<td>Integer</td>
<td>AOS+ damage modifier</td>
<td>r/w</td>
</tr>
<tr id="doc-table-light">
<td>damage_physical</td>
<td>Integer</td>
<td>Total AOS+ damage factor.</td>
<td>r/o</td>
</tr>
<tr>
<td>damage_physical_mod</td>
<td>Integer</td>
<td>AOS+ damage modifier</td>
<td>r/w</td>
</tr>
<tr id="doc-table-light">
<td>damage_poison</td>
<td>Integer</td>
<td>Total AOS+ damage factor.</td>
<td>r/o</td>
</tr>
<tr>
<td>damage_poison_mod</td>
<td>Integer</td>
<td>AOS+ damage modifier</td>
<td>r/w</td>
</tr>
<tr id="doc-table-light">
<td>decayat</td>
<td>Integer</td>
<td>game clock value after which this item might decay</td>
<td>r/w</td>
</tr>
<tr>
<td>desc</td>
<td>String</td>
<td>single click description string (formatted name)</td>
<td>r/o</td>
</tr>
<tr id="doc-table-light">
<td>equipscript</td>
<td>String</td>
<td>script run when item equipped on a character</td>
<td>r/w</td>
</tr>
<tr>
<td>invisible</td>
<td>Boolean</td>
<td>true if the item is invisible</td>
<td>r/w</td>
</tr>
<tr id="doc-table-light">
<td>item_count</td>
<td>Integer</td>
<td>number of items in container (or 1 if this item is not a container)</td>
<td>r/o</td>
</tr>
<tr>
<td>layer</td>
<td>Integer</td>
<td>equipment layer</td>
<td>r/o</td>
</tr>
<tr id="doc-table-light">
<td>movable</td>
<td>Boolean</td>
<td>true if player may move the item</td>
<td>r/w</td>
</tr>
<tr>
<td>newbie</td>
<td>Boolean</td>
<td>true if the item remains with the ghost when player dies</td>
<td>r/w</td>
</tr>
<tr id="doc-table-light">
<td>resist_cold</td>
<td>Integer</td>
<td>Total AOS+ armor factor.</td>
<td>r/o</td>
</tr>
<tr>
<td>resist_cold_mod</td>
<td>Integer</td>
<td>AOS+ Armor factor modifier</td>
<td>r/w</td>
</tr>
<tr id="doc-table-light">
<td>resist_energy</td>
<td>Integer</td>
<td>Total AOS+ armor factor.</td>
<td>r/o</td>
</tr>
<tr>
<td>resist_energy_mod</td>
<td>Integer</td>
<td>AOS+ Armor factor modifier</td>
<td>r/w</td>
</tr>
<tr id="doc-table-light">
<td>resist_fire</td>
<td>Integer</td>
<td>Total AOS+ armor factor.</td>
<td>r/o</td>
</tr>
<tr>
<td>resist_fire_mod</td>
<td>Integer</td>
<td>AOS+ Armor factor modifier</td>
<td>r/w</td>
</tr>
<tr id="doc-table-light">
<td>resist_physical</td>
<td>Integer</td>
<td>Total AOS+ armor factor.</td>
<td>r/o</td>
</tr>
<tr>
<td>resist_physical_mod</td>
<td>Integer</td>
<td>AOS+ Armor factor modifier</td>
<td>r/w</td>
</tr>
<tr id="doc-table-light">
<td>resist_poison</td>
<td>Integer</td>
<td>Total AOS+ armor factor.</td>
<td>r/o</td>
</tr>
<tr>
<td>resist_poison_mod</td>
<td>Integer</td>
<td>AOS+ Armor factor modifier</td>
<td>r/w</td>
</tr>
<tr id="doc-table-light">
<td>saveonexit</td>
<td>Boolean</td>
<td>default 1, if you set this to 0 the item and (if container, it's contents) will NOT be saved to datafile</td>
<td>r/w</td>
</tr>
<tr>
<td>sellprice</td>
<td>Integer</td>
<td>Amount of gold an NPC sells this item for. 0=not for sale, -1=itemdesc default.</td>
<td>r/w</td>
</tr>
<tr id="doc-table-light">
<td>stackable</td>
<td>Integer</td>
<td>return is based on POL Decided stackability of item.</td>
<td>r/o</td>
</tr>
<tr>
<td>tile_layer</td>
<td>Integer</td>
<td>returns the Layer setting in the Tiles.cfg/Tiledata</td>
<td>r/o</td>
</tr>
<tr id="doc-table-light">
<td>unequipscript</td>
<td>String</td>
<td>script run when item unequipped</td>
<td>r/w</td>
</tr>
<tr>
<td>usescript</td>
<td>String</td>
<td>double-click action script. set to empty string for itemdesc.cfg default script.</td>
<td>r/w</td>
</tr>
</tbody>
</table>
</div></div>
<div class="container"><div class="doc-mainbox-big-gold">
<div class="doc-anchor"><a href="#TOP">[^]</a></div>
<table class="doc-table" frame="void" rules="groups" width="100%" border="1" CELLPADDING="1" CELLSPACING="0">
<colgroup align="left">
<col width="25%">
<col width="18%">
<col width="52%">
<col width="5%">
</colgroup>
<tbody><tr><th align="center" colspan="4"><a name="Lockable">Lockable</a></th></tr></tbody>
<tbody><tr id="doc-table-dark"><th align="left" colspan="4">Parent</th></tr></tbody>
<tbody><tr><td colspan="4"><a href="#Item">Item</a></td></tr></tbody>
<tbody><tr id="doc-table-dark"><th align="left" colspan="4">Children</th></tr></tbody>
<tbody>
<tr><td colspan="4"><a href="#Door">Door</a></td></tr>
<tr><td colspan="4"><a href="#Container">Container</a></td></tr>
</tbody>
<tbody><tr id="doc-table-dark"><th align="left" colspan="4">Explanation</th></tr></tbody>
<tbody><tr><td colspan="4">Class containing concrete subclasses which can 'lock'</td></tr></tbody>
<tbody><tr id="doc-table-dark"><th align="left" colspan="4">Members</th></tr></tbody>
<tbody><tr id="doc-table-med">
<td>Name</td>
<td>Type</td>
<td>Desc</td>
<td>Access</td>
</tr></tbody>
<tbody><tr>
<td>locked</td>
<td>Boolean</td>
<td>true if the item is locked</td>
<td>r/w</td>
</tr></tbody>
</table>
</div></div>
<div class="container"><div class="doc-mainbox-big-gold">
<div class="doc-anchor"><a href="#TOP">[^]</a></div>
<table class="doc-table" frame="void" rules="groups" width="100%" border="1" CELLPADDING="1" CELLSPACING="0">
<colgroup align="left">
<col width="25%">
<col width="18%">
<col width="52%">
<col width="5%">
</colgroup>
<tbody><tr><th align="center" colspan="4"><a name="Map">Map</a></th></tr></tbody>
<tbody><tr id="doc-table-dark"><th align="left" colspan="4">Parent</th></tr></tbody>
<tbody><tr><td colspan="4"><a href="#Item">Item</a></td></tr></tbody>
<tbody><tr id="doc-table-dark"><th align="left" colspan="4">Explanation</th></tr></tbody>
<tbody><tr><td colspan="4">A Map item that shows a a map image in a gump when double clicked.</td></tr></tbody>
<tbody><tr id="doc-table-dark"><th align="left" colspan="4">Members</th></tr></tbody>
<tbody><tr id="doc-table-med">
<td>Name</td>
<td>Type</td>
<td>Desc</td>
<td>Access</td>
</tr></tbody>
<tbody>
<tr>
<td>gumpheight</td>
<td>Integer</td>
<td>height in pixels of map gump</td>
<td>r/w</td>
</tr>
<tr id="doc-table-light">
<td>gumpwidth</td>
<td>Integer</td>
<td>width in pixels of map gump</td>
<td>r/w</td>
</tr>
<tr>
<td>xeast</td>
<td>Integer</td>
<td>east gump edge (world coord)</td>
<td>r/w</td>
</tr>
<tr id="doc-table-light">
<td>xwest</td>
<td>Integer</td>
<td>west gump edge (world coord)</td>
<td>r/w</td>
</tr>
<tr>
<td>ynorth</td>
<td>Integer</td>
<td>north gump edge (world coord)</td>
<td>r/w</td>
</tr>
<tr id="doc-table-light">
<td>ysouth</td>
<td>Integer</td>
<td>south gump edge (world coord)</td>
<td>r/w</td>
</tr>
</tbody>
<tbody><tr id="doc-table-dark"><th align="left" colspan="4">Methods</th></tr></tbody>
<tbody><tr id="doc-table-med">
<td>Prototype</td>
<td>Returns</td>
<td colspan="2">Desc</td>
</tr></tbody>
<tbody>
<tr>
<td>appendpin(int x, int y)</td>
<td>true/error</td>
<td colspan="2">append pin{x,y} to end of course</td>
</tr>
<tr id="doc-table-light">
<td>erasepin(int index)</td>
<td>true/error</td>
<td colspan="2">erase pin at index</td>
</tr>
<tr>
<td>getpins()</td>
<td>array</td>
<td colspan="2">returns array of structs{x,y} of pins for the map</td>
</tr>
<tr id="doc-table-light">
<td>insertpin(int index, int x, int y)</td>
<td>true/error</td>
<td colspan="2">insert pin{x,y} before index</td>
</tr>
</tbody>
</table>
</div></div>
<div class="container"><div class="doc-mainbox-big-gold">
<div class="doc-anchor"><a href="#TOP">[^]</a></div>
<table class="doc-table" frame="void" rules="groups" width="100%" border="1" CELLPADDING="1" CELLSPACING="0">
<colgroup align="left">
<col width="25%">
<col width="18%">
<col width="52%">
<col width="5%">
</colgroup>
<tbody><tr><th align="center" colspan="4"><a name="Multi">Multi</a></th></tr></tbody>
<tbody><tr id="doc-table-dark"><th align="left" colspan="4">Parent</th></tr></tbody>
<tbody><tr><td colspan="4"><a href="#Item">Item</a></td></tr></tbody>
<tbody><tr id="doc-table-dark"><th align="left" colspan="4">Children</th></tr></tbody>
<tbody>
<tr><td colspan="4"><a href="#House">House</a></td></tr>
<tr><td colspan="4"><a href="#Boat">Boat</a></td></tr>
</tbody>
<tbody><tr id="doc-table-dark"><th align="left" colspan="4">Explanation</th></tr></tbody>
<tbody><tr><td colspan="4">Special items that display as many pieces of a large structure, as defined in multi.cfg</td></tr></tbody>
<tbody><tr id="doc-table-dark"><th align="left" colspan="4">Members</th></tr></tbody>
<tbody><tr id="doc-table-med">
<td>Name</td>
<td>Type</td>
<td>Desc</td>
<td>Access</td>
</tr></tbody>
<tbody><tr>
<td>footprint</td>
<td>Struct</td>
<td>returns a struct with 'xmin', 'xmax', 'ymin', 'ymax' of the world coordinates the multi occupies.</td>
<td>r/o</td>
</tr></tbody>
</table>
</div></div>
<div class="container"><div class="doc-mainbox-big-gold">
<div class="doc-anchor"><a href="#TOP">[^]</a></div>
<table class="doc-table" frame="void" rules="groups" width="100%" border="1" CELLPADDING="1" CELLSPACING="0">
<colgroup align="left">
<col width="25%">
<col width="18%">
<col width="52%">
<col width="5%">
</colgroup>
<tbody><tr><th align="center" colspan="4"><a name="NPC">NPC</a></th></tr></tbody>
<tbody><tr id="doc-table-dark"><th align="left" colspan="4">Parent</th></tr></tbody>
<tbody><tr><td colspan="4"><a href="#Character">Character</a></td></tr></tbody>
<tbody><tr id="doc-table-dark"><th align="left" colspan="4">Explanation</th></tr></tbody>
<tbody><tr><td colspan="4">A Non-Player Character mobile object</td></tr></tbody>
<tbody><tr id="doc-table-dark"><th align="left" colspan="4">Members</th></tr></tbody>
<tbody><tr id="doc-table-med">
<td>Name</td>
<td>Type</td>
<td>Desc</td>
<td>Access</td>
</tr></tbody>
<tbody>
<tr>
<td>alignment</td>
<td>Integer</td>
<td>NPC template alignment.</td>
<td>r/o</td>
</tr>
<tr id="doc-table-light">
<td>eventmask</td>
<td>Integer</td>
<td>bitwise-ORd list of sysevents that have been enabled, error if no control script running</td>
<td>r/o</td>
</tr>
<tr>
<td>master</td>
<td>Character</td>
<td>controlling player character, false if none</td>
<td>r/o</td>
</tr>
<tr id="doc-table-light">
<td>npctemplate</td>
<td>String</td>
<td>NPC template name in npcdesc.cfg</td>
<td>r/o</td>
</tr>
<tr>
<td>process</td>
<td>Script</td>
<td>Control script reference, error on none</td>
<td>r/o</td>
</tr>
<tr id="doc-table-light">
<td>run_speed</td>
<td>Integer</td>
<td>NPC walk delay (maximum 250)</td>
<td>r/w</td>
</tr>
<tr>
<td>saveonexit</td>
<td>Boolean</td>
<td>default 1, if you set this to 0 the npc and all items contained within it's wornitems container will NOT be saved to datafile</td>
<td>r/w</td>
</tr>
<tr id="doc-table-light">
<td>script</td>
<td>String</td>
<td>control script name</td>
<td>r/w</td>
</tr>
<tr>
<td>speech_color</td>
<td>Integer</td>
<td>NPC speech text color</td>
<td>r/w</td>
</tr>
<tr id="doc-table-light">
<td>speech_font</td>
<td>Integer</td>
<td>NPC speech text font</td>
<td>r/w</td>
</tr>
<tr>
<td>use_adjustments</td>
<td>Boolean</td>
<td>Use movement adjustments to avoid single-tile obsticals</td>
<td>r/w</td>
</tr>
</tbody>
<tbody><tr id="doc-table-dark"><th align="left" colspan="4">Methods</th></tr></tbody>
<tbody><tr id="doc-table-med">
<td>Prototype</td>
<td>Returns</td>
<td colspan="2">Desc</td>
</tr></tbody>
<tbody>
<tr>
<td>canmove(String direction, or Integer facing)</td>
<td>true/false</td>
<td colspan="2">Checks if an NPC can move in given direction (IsLegalMove works in a different way and is used for bounding boxes only).</td>
</tr>
<tr id="doc-table-light">
<td>privileges()</td>
<td>dictionary</td>
<td colspan="2">Dictionary where keys are privilege name, value is 0/1 boolean.</td>
</tr>
<tr>
<td>setmaster(CharacterRef master)</td>
<td>true/false</td>
<td colspan="2">Sets the master character for the NPC, if not passed, clears master.</td>
</tr>
</tbody>
</table>
</div></div>
<div class="container"><div class="doc-mainbox-big-gold">
<div class="doc-anchor"><a href="#TOP">[^]</a></div>
<table class="doc-table" frame="void" rules="groups" width="100%" border="1" CELLPADDING="1" CELLSPACING="0">
<colgroup align="left">
<col width="25%">
<col width="18%">
<col width="52%">
<col width="5%">
</colgroup>
<tbody><tr><th align="center" colspan="4"><a name="Package">Package</a></th></tr></tbody>
<tbody><tr id="doc-table-dark"><th align="left" colspan="4">Explanation</th></tr></tbody>
<tbody><tr><td colspan="4">Object representing a package in the system</td></tr></tbody>
<tbody><tr id="doc-table-dark"><th align="left" colspan="4">Members</th></tr></tbody>
<tbody><tr id="doc-table-med">
<td>Name</td>
<td>Type</td>
<td>Desc</td>
<td>Access</td>
</tr></tbody>
<tbody>
<tr>
<td>name</td>
<td>String</td>
<td>Package name</td>
<td>r/o</td>
</tr>
<tr id="doc-table-light">
<td>npcdesc</td>
<td>Boolean</td>
<td>Does the Package hold an own npcdesc.cfg?</td>
<td>r/o</td>
</tr>
<tr>
<td>supports_http</td>
<td>Boolean</td>
<td>Does the Package supports www?</td>
<td>r/o</td>
</tr>
</tbody>
</table>
</div></div>
<div class="container"><div class="doc-mainbox-big-gold">
<div class="doc-anchor"><a href="#TOP">[^]</a></div>
<table class="doc-table" frame="void" rules="groups" width="100%" border="1" CELLPADDING="1" CELLSPACING="0">
<colgroup align="left">
<col width="25%">
<col width="18%">
<col width="52%">
<col width="5%">
</colgroup>
<tbody><tr><th align="center" colspan="4"><a name="Packet">Packet</a></th></tr></tbody>
<tbody><tr id="doc-table-dark"><th align="left" colspan="4">Explanation</th></tr></tbody>
<tbody><tr><td colspan="4">Object representing a binary packet. Print(Packet) returns string of Packet contents.</td></tr></tbody>
<tbody><tr id="doc-table-dark"><th align="left" colspan="4">Methods</th></tr></tbody>
<tbody><tr id="doc-table-med">
<td>Prototype</td>
<td>Returns</td>
<td colspan="2">Desc</td>
</tr></tbody>
<tbody>
<tr>
<td>GetInt16(int offset)</td>
<td>integer/error</td>
<td colspan="2">Gets 16-bit (2 byte) value at offset (0-based). Automatically converts to Big-Endian.</td>
</tr>
<tr id="doc-table-light">
<td>GetInt16Flipped(int offset)</td>
<td>integer/error</td>
<td colspan="2">Gets 16-bit (2 byte) value at offset (0-based). Automatically converts to Low-Endian.</td>
</tr>
<tr>
<td>GetInt32(int offset)</td>
<td>integer/error</td>
<td colspan="2">Gets 32-bit (4 byte) value at offset (0-based). Automatically converts to Big-Endian.</td>
</tr>
<tr id="doc-table-light">
<td>GetInt32Flipped(int offset)</td>
<td>integer/error</td>
<td colspan="2">Gets 32-bit (4 byte) value at offset (0-based). Automatically converts to Low-Endian.</td>
</tr>
<tr>
<td>GetInt8(int offset)</td>
<td>integer/error</td>
<td colspan="2">Gets 8-bit (1 byte) value at offset (0-based).</td>
</tr>
<tr id="doc-table-light">
<td>GetSize()</td>
<td>integer</td>
<td colspan="2">Returns size of packet data in bytes.</td>
</tr>
<tr>
<td>GetString(int offset, int length)</td>
<td>string/error</td>
<td colspan="2">Gets a string (1-byte characters) at offset (0-based) for length characters.</td>
</tr>
<tr id="doc-table-light">
<td>GetUnicodeString(int offset, int length)</td>
<td>array/error</td>
<td colspan="2">Gets a 'unicode string' (2-byte characters) at offset (0-based) for length characters (NOT BYTES).</td>
</tr>
<tr>
<td>GetUnicodeStringFlipped(int offset, int length)</td>
<td>array/error</td>
<td colspan="2">Gets a 'unicode string' (2-byte characters) at offset (0-based) for length characters (NOT BYTES). With Flipped Byte Order (for specific packet support)</td>
</tr>
<tr id="doc-table-light">
<td>SendAreaPacket(int x, int y, int range, string realm)</td>
<td>integer/error</td>
<td colspan="2">Sends this packet to all the players in range of x,y. Returns integer number of clients this packet was successfully sent to.</td>
</tr>
<tr>
<td>SendPacket(Character)</td>
<td>true/error</td>
<td colspan="2">Sends this packet to character.</td>
</tr>
<tr id="doc-table-light">
<td>SetInt16(int offset, int value)</td>
<td>true/error</td>
<td colspan="2">Sets an 16-bit (2-byte) value at offset (0-based). If offset is greater than current size, the packet is resized to fit the new data and the encoded size is updated for variable length packets. Resizing is not allowed for fixed-length packets. Automatically converts to Big-Endian.</td>
</tr>
<tr>
<td>SetInt16Flipped(int offset, int value)</td>
<td>true/error</td>
<td colspan="2">Sets an 16-bit (2-byte) value at offset (0-based). If offset is greater than current size, the packet is resized to fit the new data and the encoded size is updated for variable length packets. Resizing is not allowed for fixed-length packets. Automatically converts to Low-Endian.</td>
</tr>
<tr id="doc-table-light">
<td>SetInt32(int offset, int value)</td>
<td>true/error</td>
<td colspan="2">Sets an 32-bit (4-byte) value at offset (0-based). If offset is greater than current size, the packet is resized to fit the new data and the encoded size is updated for variable length packets. Resizing is not allowed for fixed-length packets. Automatically converts to Big-Endian. NOTE: currently there's a compiler problem setting 0xFFFFFFFF, it gets converted to 0x7FFFFFFF. Use multiple SetInt16 or SetInt8 calls for now.</td>
</tr>
<tr>
<td>SetInt32Flipped(int offset, int value)</td>
<td>true/error</td>
<td colspan="2">Sets an 32-bit (4-byte) value at offset (0-based). If offset is greater than current size, the packet is resized to fit the new data and the encoded size is updated for variable length packets. Resizing is not allowed for fixed-length packets. Automatically converts to Low-Endian. NOTE: currently there's a compiler problem setting 0xFFFFFFFF, it gets converted to 0x7FFFFFFF. Use multiple SetInt16 or SetInt8 calls for now.</td>
</tr>
<tr id="doc-table-light">
<td>SetInt8(int offset, int value)</td>
<td>true/error</td>
<td colspan="2">Sets an 8-bit (1-byte) value at offset (0-based). If offset is greater than current size, the packet is resized to fit the new data and the encoded size is updated for variable length packets. Resizing is not allowed for fixed-length packets.</td>
</tr>
<tr>
<td>SetSize(int newsize)</td>
<td>integer/error</td>
<td colspan="2">Sets the new size of the packet, possibly destroying data if packet size was decreased. Updates the encoded size for variable length packets, not allowed for fixed-length packets. Returns the old size of the packet.</td>
</tr>
<tr id="doc-table-light">
<td>SetString(int offset, string string, int nullterminate)</td>
<td>true/error</td>
<td colspan="2">Sets a string value at offset (0-based). If offset plus length of string is greater than current size, the packet is resized to fit the new data and the encoded size is updated for variable length packets. Resizing is not allowed for fixed-length packets. Set nullterminate to 1 if you want to automatically append a 0 terminator.</td>
</tr>
<tr>
<td>SetUnicodeString(int offset, array unicode character, int nullterminate)</td>
<td>true/error</td>
<td colspan="2">Sets a unicode string at offset (0-based). If offset plus length of string (2*number of members in the array) is greater than current size, the packet is resized to fit the new data and the encoded size is updated for variable length packets. Resizing is not allowed for fixed-length packets. Set nullterminate to 1 if you want to automatically append a double 0 terminator. Unicode strings in eScript are arrays of 2-byte values. See unicode.em for useful functions. CAscZ in basic.em is useful for character sets that use the ascii/ansi standard.</td>
</tr>
<tr id="doc-table-light">
<td>SetUnicodeStringFlipped(int offset, array unicode character, int nullterminate)</td>
<td>true/error</td>
<td colspan="2">Sets a unicode string at offset (0-based). If offset plus length of string (2*number of members in the array) is greater than current size, the packet is resized to fit the new data and the encoded size is updated for variable length packets. Resizing is not allowed for fixed-length packets. Set nullterminate to 1 if you want to automatically append a double 0 terminator. Unicode strings in eScript are arrays of 2-byte values. See unicode.em for useful functions. CAscZ in basic.em is useful for character sets that use the ascii/ansi standard. With Flipped Byte Order (for specific packet support)</td>
</tr>
</tbody>
</table>
</div></div>
<div class="container"><div class="doc-mainbox-big-gold">
<div class="doc-anchor"><a href="#TOP">[^]</a></div>
<table class="doc-table" frame="void" rules="groups" width="100%" border="1" CELLPADDING="1" CELLSPACING="0">
<colgroup align="left">
<col width="25%">
<col width="18%">
<col width="52%">
<col width="5%">
</colgroup>
<tbody><tr><th align="center" colspan="4"><a name="Party">Party</a></th></tr></tbody>
<tbody><tr id="doc-table-dark"><th align="left" colspan="4">Explanation</th></tr></tbody>
<tbody><tr><td colspan="4">Object representing a player party association</td></tr></tbody>
<tbody><tr id="doc-table-dark"><th align="left" colspan="4">Members</th></tr></tbody>
<tbody><tr id="doc-table-med">
<td>Name</td>
<td>Type</td>
<td>Desc</td>
<td>Access</td>
</tr></tbody>
<tbody>
<tr>
<td>candidates</td>
<td>Array</td>
<td>Array of Offline Character Refs who are party candidates</td>
<td>r/o</td>
</tr>
<tr id="doc-table-light">
<td>leader</td>
<td>OfflineCharRef</td>
<td>Offline Character Ref of leader</td>
<td>r/o</td>
</tr>
<tr>
<td>members</td>
<td>Array</td>
<td>Array of Offline Character Refs who are party members</td>
<td>r/o</td>
</tr>
</tbody>
<tbody><tr id="doc-table-dark"><th align="left" colspan="4">Methods</th></tr></tbody>
<tbody><tr id="doc-table-med">
<td>Prototype</td>
<td>Returns</td>
<td colspan="2">Desc</td>
</tr></tbody>
<tbody>
<tr>
<td>addcandidate(CharacterRef)</td>
<td>error/true</td>
<td colspan="2">adds a character to the party as candidate</td>
</tr>
<tr id="doc-table-light">
<td>addmember(CharacterRef)</td>
<td>error/true</td>
<td colspan="2">adds a character to the party</td>
</tr>
<tr>
<td>eraseprop(string propname)</td>
<td>true/error</td>
<td colspan="2">Erases the property named 'propname'.</td>
</tr>
<tr id="doc-table-light">
<td>getprop(string propname)</td>
<td>script object/error</td>
<td colspan="2">Returns an unpacked script object (i.e. int,string,array,etc)</td>
</tr>
<tr>
<td>propnames()</td>
<td>Array</td>
<td colspan="2">Returns an array of property name strings.</td>
</tr>
<tr id="doc-table-light">
<td>removecandidate(CharacterRef)</td>
<td>true/error</td>
<td colspan="2">removes a character candidate</td>
</tr>
<tr>
<td>removemember(CharacterRef)</td>
<td>true/error</td>
<td colspan="2">removes a character member</td>
</tr>
<tr id="doc-table-light">
<td>setleader(CharacterRef)</td>
<td>error/true</td>
<td colspan="2">sets new leader</td>
</tr>
<tr>
<td>setprop(string propname, object propval)</td>
<td>true/error</td>
<td colspan="2">Sets a packable object to a property.</td>
</tr>
</tbody>
</table>
</div></div>
<div class="container"><div class="doc-mainbox-big-gold">
<div class="doc-anchor"><a href="#TOP">[^]</a></div>
<table class="doc-table" frame="void" rules="groups" width="100%" border="1" CELLPADDING="1" CELLSPACING="0">
<colgroup align="left">
<col width="25%">
<col width="18%">
<col width="52%">
<col width="5%">
</colgroup>
<tbody><tr><th align="center" colspan="4"><a name="Polcore">Polcore</a></th></tr></tbody>
<tbody><tr id="doc-table-dark"><th align="left" colspan="4">Explanation</th></tr></tbody>
<tbody><tr><td colspan="4">Object containing server data</td></tr></tbody>
<tbody><tr id="doc-table-dark"><th align="left" colspan="4">Members</th></tr></tbody>
<tbody><tr id="doc-table-med">
<td>Name</td>
<td>Type</td>
<td>Desc</td>
<td>Access</td>
</tr></tbody>
<tbody>
<tr>
<td>all_scripts</td>
<td>Array</td>
<td>Array of all cached script objects</td>
<td>r/o</td>
</tr>
<tr id="doc-table-light">
<td>bytes_received</td>
<td>Double</td>
<td>Number of bytes received from clients</td>
<td>r/o</td>
</tr>
<tr>
<td>bytes_sent</td>
<td>Double</td>
<td>Number of bytes sent to clients</td>
<td>r/o</td>
</tr>
<tr id="doc-table-light">
<td>combat_operations_per_min</td>
<td>Integer</td>
<td>Combat operations per minute</td>
<td>r/o</td>
</tr>
<tr>
<td>compiledate</td>
<td>String</td>
<td>Compile Date</td>
<td>r/o</td>
</tr>
<tr id="doc-table-light">
<td>compiletime</td>
<td>String</td>
<td>Compile Time</td>
<td>r/o</td>
</tr>
<tr>
<td>error_creations_per_min</td>
<td>Integer</td>
<td>Script errors per minute</td>
<td>r/o</td>
</tr>
<tr id="doc-table-light">
<td>events_per_min</td>
<td>Integer</td>
<td>Events per minute</td>
<td>r/o</td>
</tr>
<tr>
<td>instr_per_min</td>
<td>Integer</td>
<td>Script instructions per minute</td>
<td>r/o</td>
</tr>
<tr id="doc-table-light">
<td>iostats</td>
<td>Integer</td>
<td>struct of arrays of structs - iostats["sent"array-&gt;256 elements of struct["count","bytes"],"received"array-&gt;256 elements of struct["count","bytes"]]</td>
<td>r/o</td>
</tr>
<tr>
<td>itemcount</td>
<td>Integer</td>
<td>Total Item Count</td>
<td>r/o</td>
</tr>
<tr id="doc-table-light">
<td>mobilecount</td>
<td>Integer</td>
<td>Total Mobile Count</td>
<td>r/o</td>
</tr>
<tr>
<td>packages</td>
<td>Array</td>
<td>Array of enabled package names</td>
<td>r/o</td>
</tr>
<tr id="doc-table-light">
<td>priority_divide</td>
<td>Integer</td>
<td>Priority Divide</td>
<td>r/o</td>
</tr>
<tr>
<td>queued_iostats</td>
<td>Array</td>
<td>structure same as iostats, but for queued I/O stats</td>
<td>r/o</td>
</tr>
<tr id="doc-table-light">
<td>script_profiles</td>
<td>Array</td>
<td>Array of structs: struct have members name, instr, invocations, instr_per_invoc, instr_percent</td>
<td>r/o</td>
</tr>
<tr>
<td>skill_checks_per_min</td>
<td>Integer</td>
<td>Skill checks per minute</td>
<td>r/o</td>
</tr>
<tr id="doc-table-light">
<td>sysload</td>
<td>Integer</td>
<td>System Load</td>
<td>r/o</td>
</tr>
<tr>
<td>sysload_severity</td>
<td>Integer</td>
<td>System Load Severity</td>
<td>r/o</td>
</tr>
<tr id="doc-table-light">
<td>systime</td>
<td>Integer</td>
<td>UNIX time()</td>
<td>r/o</td>
</tr>
<tr>
<td>tasks_late_per_min</td>
<td>Integer</td>
<td>Tasks late per minute</td>
<td>r/o</td>
</tr>
<tr id="doc-table-light">
<td>tasks_late_ticks_per_min</td>
<td>Integer</td>
<td>Tasks late ticks per minute</td>
<td>r/o</td>
</tr>
<tr>
<td>tasks_ontime_per_min</td>
<td>Integer</td>
<td>Tasks ontime per minute</td>
<td>r/o</td>
</tr>
<tr id="doc-table-light">
<td>uptime</td>
<td>Integer</td>
<td>Uptime in seconds</td>
<td>r/o</td>
</tr>
<tr>
<td>version</td>
<td>Integer</td>
<td>Version, i.e. 95</td>
<td>r/o</td>
</tr>
<tr id="doc-table-light">
<td>verstr</td>
<td>String</td>
<td>Version String</td>
<td>r/o</td>
</tr>
</tbody>
<tbody><tr id="doc-table-dark"><th align="left" colspan="4">Methods</th></tr></tbody>
<tbody><tr id="doc-table-med">
<td>Prototype</td>
<td>Returns</td>
<td colspan="2">Desc</td>
</tr></tbody>
<tbody>
<tr>
<td>clear_script_profile_counters()</td>
<td>true/false</td>
<td colspan="2">Clears the script profile counters</td>
</tr>
<tr id="doc-table-light">
<td>log_profile(bool clear)</td>
<td>true/false</td>
<td colspan="2">Writes the script profile to the log, optionally clearing it after.</td>
</tr>
<tr>
<td>set_priority_divide(int divide)</td>
<td>true/false</td>
<td colspan="2">Sets the priority divide to 'divide'</td>
</tr>
</tbody>
</table>
</div></div>
<div class="container"><div class="doc-mainbox-big-gold">
<div class="doc-anchor"><a href="#TOP">[^]</a></div>
<table class="doc-table" frame="void" rules="groups" width="100%" border="1" CELLPADDING="1" CELLSPACING="0">
<colgroup align="left">
<col width="25%">
<col width="18%">
<col width="52%">
<col width="5%">
</colgroup>
<tbody><tr><th align="center" colspan="4"><a name="Script">Script</a></th></tr></tbody>
<tbody><tr id="doc-table-dark"><th align="left" colspan="4">Explanation</th></tr></tbody>
<tbody><tr><td colspan="4">Object representing a script in the system</td></tr></tbody>
<tbody><tr id="doc-table-dark"><th align="left" colspan="4">Members</th></tr></tbody>
<tbody><tr id="doc-table-med">
<td>Name</td>
<td>Type</td>
<td>Desc</td>
<td>Access</td>
</tr></tbody>
<tbody>
<tr>
<td>PC</td>
<td>Integer</td>
<td>Program Counter</td>
<td>r/o</td>
</tr>
<tr id="doc-table-light">
<td>attached_to</td>
<td>MobileRef</td>
<td>Mobile where Script is attached to. If it's an AI-Script it will return the NPC.</td>
<td>r/o</td>
</tr>
<tr>
<td>call_depth</td>
<td>Integer</td>
<td>Call depth</td>
<td>r/o</td>
</tr>
<tr id="doc-table-light">
<td>consec_cycles</td>
<td>Integer</td>
<td>Consecutive Cycles</td>
<td>r/o</td>
</tr>
<tr>
<td>controller</td>
<td>MobileRef</td>
<td>Mobile which is responsible for damage etc.</td>
<td>r/o</td>
</tr>
<tr id="doc-table-light">
<td>globals</td>
<td>Dictionary</td>
<td>Dictionary of global variable name=&gt;value pairs</td>
<td>r/o</td>
</tr>
<tr>
<td>instr_cycles</td>
<td>Integer</td>
<td>Instruction Cycles</td>
<td>r/o</td>
</tr>
<tr id="doc-table-light">
<td>name</td>
<td>String</td>
<td>Script name</td>
<td>r/o</td>
</tr>
<tr>
<td>num_globals</td>
<td>Integer</td>
<td>Number of global variables</td>
<td>r/o</td>
</tr>
<tr id="doc-table-light">
<td>pid</td>
<td>Integer</td>
<td>Process ID</td>
<td>r/o</td>
</tr>
<tr>
<td>sleep_cycles</td>
<td>Integer</td>
<td>Sleep Cycles</td>
<td>r/o</td>
</tr>
<tr id="doc-table-light">
<td>state</td>
<td>String</td>
<td>Script state</td>
<td>r/o</td>
</tr>
<tr>
<td>var_size</td>
<td>Integer</td>
<td>Estimated size of global variables and current local variables</td>
<td>r/o</td>
</tr>
</tbody>
<tbody><tr id="doc-table-dark"><th align="left" colspan="4">Methods</th></tr></tbody>
<tbody><tr id="doc-table-med">
<td>Prototype</td>
<td>Returns</td>
<td colspan="2">Desc</td>
</tr></tbody>
<tbody>
<tr>
<td>clear_event_queue()</td>
<td>true</td>
<td colspan="2">clears the event queue of the script</td>
</tr>
<tr id="doc-table-light">
<td>kill()</td>
<td>true</td>
<td colspan="2">Kills this script</td>
</tr>
<tr>
<td>sendevent(obj event)</td>
<td>error/true</td>
<td colspan="2">sends a event to this script (usually a struct)</td>
</tr>
</tbody>
</table>
</div></div>
<div class="container"><div class="doc-mainbox-big-gold">
<div class="doc-anchor"><a href="#TOP">[^]</a></div>
<table class="doc-table" frame="void" rules="groups" width="100%" border="1" CELLPADDING="1" CELLSPACING="0">
<colgroup align="left">
<col width="25%">
<col width="18%">
<col width="52%">
<col width="5%">
</colgroup>
<tbody><tr><th align="center" colspan="4"><a name="String">String</a></th></tr></tbody>
<tbody><tr id="doc-table-dark"><th align="left" colspan="4">Explanation</th></tr></tbody>
<tbody><tr><td colspan="4">An ordered collection of ascii (1-byte) characters. Declare with var s := "my string"</td></tr></tbody>
<tbody><tr id="doc-table-dark"><th align="left" colspan="4">Methods</th></tr></tbody>
<tbody><tr id="doc-table-med">
<td>Prototype</td>
<td>Returns</td>
<td colspan="2">Desc</td>
</tr></tbody>
<tbody>
<tr>
<td>+ string</td>
<td>string</td>
<td colspan="2">concatenates the strings, returns the new string.</td>
</tr>
<tr id="doc-table-light">
<td>[start,length]</td>
<td>string</td>
<td colspan="2">'Substring': returns a new string from the character range between start and length, inclusive. Returns error if index out of range. Ex: var str := "yomama"; str[2,3] would return "oma".</td>
</tr>
<tr>
<td>[substr]</td>
<td>string/uninit</td>
<td colspan="2">seaches the string for 'substr'. If found, returns the first character of the substring, else uninitialized object. </td>
</tr>
<tr id="doc-table-light">
<td>[substr] := replace_str</td>
<td>string</td>
<td colspan="2">finds the first occurance of 'substr' and replaces substr with 'replace_str'. returns the new string.</td>
</tr>
</tbody>
</table>
</div></div>
<div class="container"><div class="doc-mainbox-big-gold">
<div class="doc-anchor"><a href="#TOP">[^]</a></div>
<table class="doc-table" frame="void" rules="groups" width="100%" border="1" CELLPADDING="1" CELLSPACING="0">
<colgroup align="left">
<col width="25%">
<col width="18%">
<col width="52%">
<col width="5%">
</colgroup>
<tbody><tr><th align="center" colspan="4"><a name="Struct">Struct</a></th></tr></tbody>
<tbody><tr id="doc-table-dark"><th align="left" colspan="4">Explanation</th></tr></tbody>
<tbody><tr><td colspan="4">Data structure with explicitly named members (keys). Keys may be only be strings. Declare with var s := struct;  Pre-intialize with: var s := struct { a := 1, b :=2 }</td></tr></tbody>
<tbody><tr id="doc-table-dark"><th align="left" colspan="4">Methods</th></tr></tbody>
<tbody><tr id="doc-table-med">
<td>Prototype</td>
<td>Returns</td>
<td colspan="2">Desc</td>
</tr></tbody>
<tbody>
<tr>
<td>.+member</td>
<td>n/a</td>
<td colspan="2">struct.+member adds a member</td>
</tr>
<tr id="doc-table-light">
<td>.member</td>
<td>value</td>
<td colspan="2">gets value of member</td>
</tr>
<tr>
<td>[member]</td>
<td>value</td>
<td colspan="2">gets value of member ONLY when member is a string! no using integers here like an array.</td>
</tr>
<tr id="doc-table-light">
<td>exists(key)</td>
<td>error/int</td>
<td colspan="2">if exists, returns count of matching key</td>
</tr>
<tr>
<td>insert(int index, object)</td>
<td>int/error</td>
<td colspan="2">inserts a new object into the struct for key. Returns size.</td>
</tr>
<tr id="doc-table-light">
<td>keys()</td>
<td>array</td>
<td colspan="2">returns an array of the keys</td>
</tr>
<tr>
<td>size()</td>
<td>int</td>
<td colspan="2">number of keys in the struct</td>
</tr>
</tbody>
</table>
</div></div>
<div class="container"><div class="doc-mainbox-big-gold">
<div class="doc-anchor"><a href="#TOP">[^]</a></div>
<table class="doc-table" frame="void" rules="groups" width="100%" border="1" CELLPADDING="1" CELLSPACING="0">
<colgroup align="left">
<col width="25%">
<col width="18%">
<col width="52%">
<col width="5%">
</colgroup>
<tbody><tr><th align="center" colspan="4"><a name="UObject">UObject</a></th></tr></tbody>
<tbody><tr id="doc-table-dark"><th align="left" colspan="4">Children</th></tr></tbody>
<tbody>
<tr><td colspan="4"><a href="#Character">Character</a></td></tr>
<tr><td colspan="4"><a href="#Item">Item</a></td></tr>
</tbody>
<tbody><tr id="doc-table-dark"><th align="left" colspan="4">Explanation</th></tr></tbody>
<tbody><tr><td colspan="4">The base UO Object class</td></tr></tbody>
<tbody><tr id="doc-table-dark"><th align="left" colspan="4">Members</th></tr></tbody>
<tbody><tr id="doc-table-med">
<td>Name</td>
<td>Type</td>
<td>Desc</td>
<td>Access</td>
</tr></tbody>
<tbody>
<tr>
<td>color</td>
<td>Integer</td>
<td>color value (0 to 0xFFF)</td>
<td>r/w</td>
</tr>
<tr id="doc-table-light">
<td>facing</td>
<td>Integer</td>
<td>facing or the object (meaningful for mobiles and light-emitting items) range 0-127</td>
<td>r/w</td>
</tr>
<tr>
<td>graphic</td>
<td>Integer</td>
<td>art id number</td>
<td>r/w</td>
</tr>
<tr id="doc-table-light">
<td>height</td>
<td>Integer</td>
<td>height of the graphic as defined in tiledata.mul</td>
<td>r/o</td>
</tr>
<tr>
<td>multi</td>
<td>Multi</td>
<td>MultiRef for the Multi the object is on</td>
<td>r/o</td>
</tr>
<tr id="doc-table-light">
<td>name</td>
<td>String</td>
<td>name string (for items use .desc for single-click text)</td>
<td>r/w</td>
</tr>
<tr>
<td>objtype</td>
<td>Integer</td>
<td>object type as defined in itemdesc.cfg</td>
<td>r/o</td>
</tr>
<tr id="doc-table-light">
<td>realm</td>
<td>String</td>
<td>case-sensitive name of the realm</td>
<td>r/o</td>
</tr>
<tr>
<td>serial</td>
<td>Integer</td>
<td>unique object identifier</td>
<td>r/o</td>
</tr>
<tr id="doc-table-light">
<td>weight</td>
<td>Integer</td>
<td>weight of the graphic as defined in tiledata.mul</td>
<td>r/o</td>
</tr>
<tr>
<td>x</td>
<td>Integer</td>
<td>x coordinate</td>
<td>r/o</td>
</tr>
<tr id="doc-table-light">
<td>y</td>
<td>Integer</td>
<td>y coordinate</td>
<td>r/o</td>
</tr>
<tr>
<td>z</td>
<td>Integer</td>
<td>z coordinate</td>
<td>r/o</td>
</tr>
</tbody>
<tbody><tr id="doc-table-dark"><th align="left" colspan="4">Methods</th></tr></tbody>
<tbody><tr id="doc-table-med">
<td>Prototype</td>
<td>Returns</td>
<td colspan="2">Desc</td>
</tr></tbody>
<tbody>
<tr>
<td>eraseprop(string propname)</td>
<td>true/error</td>
<td colspan="2">Erases the property named 'propname'.</td>
</tr>
<tr id="doc-table-light">
<td>get_member(string membername</td>
<td>object, value of member or error</td>
<td colspan="2">Gets the value of the built-in member 'membername'. var objname := obj.get_member("name") is the same as var objname := obj.name</td>
</tr>
<tr>
<td>getprop(string propname)</td>
<td>script object/error</td>
<td colspan="2">Returns an unpacked script object (i.e. int,string,array,etc)</td>
</tr>
<tr id="doc-table-light">
<td>isa(POLCLASS_*)</td>
<td>boolean</td>
<td colspan="2">True if the derived class is the same as the passed class type (see uo.em for all constants)</td>
</tr>
<tr>
<td>propnames()</td>
<td>Array</td>
<td colspan="2">Returns an array of property name strings.</td>
</tr>
<tr id="doc-table-light">
<td>set_member(string membername, obj value)</td>
<td>object, new value of member or error</td>
<td colspan="2">Sets the built-in member 'membername' to 'value'. obj.set_member("name","u suck") is the same as obj.name := "u suck"</td>
</tr>
<tr>
<td>setprop(string propname, object propval)</td>
<td>true/error</td>
<td colspan="2">Sets a packable object to a property.</td>
</tr>
</tbody>
</table>
</div></div>
<div class="container"><div class="doc-mainbox-big-gold">
<div class="doc-anchor"><a href="#TOP">[^]</a></div>
<table class="doc-table" frame="void" rules="groups" width="100%" border="1" CELLPADDING="1" CELLSPACING="0">
<colgroup align="left">
<col width="25%">
<col width="18%">
<col width="52%">
<col width="5%">
</colgroup>
<tbody><tr><th align="center" colspan="4"><a name="Weapon">Weapon</a></th></tr></tbody>
<tbody><tr id="doc-table-dark"><th align="left" colspan="4">Parent</th></tr></tbody>
<tbody><tr><td colspan="4"><a href="#Equipment">Equipment</a></td></tr></tbody>
<tbody><tr id="doc-table-dark"><th align="left" colspan="4">Explanation</th></tr></tbody>
<tbody><tr><td colspan="4">Equipable items that deal damage in combat</td></tr></tbody>
<tbody><tr id="doc-table-dark"><th align="left" colspan="4">Members</th></tr></tbody>
<tbody><tr id="doc-table-med">
<td>Name</td>
<td>Type</td>
<td>Desc</td>
<td>Access</td>
</tr></tbody>
<tbody>
<tr>
<td>attribute</td>
<td>String</td>
<td>Attribute name this weapon uses as a skill</td>
<td>r/o</td>
</tr>
<tr id="doc-table-light">
<td>dmg_mod</td>
<td>Integer</td>
<td>Damage Modifier</td>
<td>r/w</td>
</tr>
<tr>
<td>hitscript</td>
<td>String</td>
<td>Script name that runs when weapon makes a hit</td>
<td>r/w</td>
</tr>
<tr id="doc-table-light">
<td>intrinsic</td>
<td>Boolean</td>
<td>Intrinsic Weapon?</td>
<td>r/o</td>
</tr>
</tbody>
</table>
</div></div>
</div>

<div id="footer">
	<div class="container">
    <p >
      If you <i>know</i> if any information is incorrect on these pages, mail your corrections to polteam@polserver.com
    </p>
    <p >
      Copyright &copy;2003-2009 David Carpman and POL Development Team, all rights reserved. DO NOT REPRODUCE, MIRROR, ALTER, SPINDLE, MUTILATE, OR SIT ON.
    </p>
    </div>
    </div>
    </body>
    </html>
   